NETSquirrel - 指南/低复杂度
您可以通过NETSquirrel.Utils.BaseTypesUtils 和NETSquirrel.Extensions.BaseTypesExtensions 类来读取所有基本类型的值并对它们进行一些额外的有用操作。 让我们考虑提供的功能。
方法签名 | 简要描述 |
---|---|
bool ReadBool(string) | 从键盘读取指定提示的bool值并返回它。 参数:
备注:
|
byte ReadByte(string) | 从键盘读取指定提示的byte值并返回它。 参数:
备注:
|
sbyte ReadSByte(string) | 从键盘读取指定提示的sbyte值并返回它。 参数:
备注:
|
char ReadChar(string) | 从键盘读取指定提示的char值并返回它。 参数:
备注:
|
decimal ReadDecimal(string) | 从键盘读取指定提示的decimal值并返回它。 参数:
备注:
|
double ReadDouble(string) | 从键盘读取指定提示的double值并返回它。 参数:
备注:
|
float ReadFloat(string) | 从键盘读取指定提示的float值并返回它。 参数:
备注:
|
int ReadInt(string) | 从键盘读取指定提示的int值并返回它。 参数:
备注:
|
uint ReadUInt(string) | 从键盘读取指定提示的uint值并返回它。 参数:
备注:
|
long ReadLong(string) | 从键盘读取指定提示的long值并返回它。 参数:
备注:
|
ulong ReadULong(string) | 从键盘读取指定提示的ulong值并返回它。 参数:
备注:
|
short ReadShort(string) | 从键盘读取指定提示的short值并返回它。 参数:
备注:
|
ushort ReadUShort(string) | 从键盘读取指定提示的ushort值并返回它。 参数:
备注:
|
string ReadString(string) | 从键盘读取指定提示的string值并返回它。 参数:
备注:
|
方法名称中使用的总体思路是:ReadTypeName,其中TypeName - 是基本类型的名称。
ReadBool 用法示例
using NETSquirrel.Extensions;
using NETSquirrel.Utils;
namespace Test
{
internal static class Program
{
private static void Main(string[] args)
{
BaseTypesUtils.ReadBool("Bool:").PrintLine();
}
}
}
{$reference NETSquirrel.dll}
uses NETSquirrel.Utils;
begin
BaseTypesUtils.ReadBool('Bool:').PrintLine();
end.
方法签名 | 简要描述 |
---|---|
void Swap<T>(ref T, ref T) | 交换两个变量的值。 参数:
|
Swap 用法示例
using NETSquirrel.Utils;
namespace Test
{
internal static class Program
{
private static void Main(string[] args)
{
var x = 1;
var y = 2;
BaseTypesUtils.Swap(ref x, ref y); // x == 2, y == 1
}
}
}
{$reference NETSquirrel.dll}
uses NETSquirrel.Utils;
begin
var x := 1;
var y := 2;
BaseTypesUtils.Swap(x, y); // x = 2, y = 1
end.
方法签名 | 简要描述 |
---|---|
bool IsBetween(this int, int, int) | 评估作为this参数传递的值是否介于另外两个值之间,并返回相应的bool值。 参数:
备注:
|
IEnumerable<int> To(this int, int) | 生成从作为this参数传递的值到更高值的序列并返回它。 参数:
备注:
|
IEnumerable<int> DownTo(this int, int) | 生成从作为this参数传递的值到更低值的序列并返回它。 参数:
备注:
|
IEnumerable<int> ToThis(this int) | 生成从 0 开始向上/向下(取决于第二个值)到作为this参数传递的值的序列,并返回它。 参数:
备注:
|
IEnumerable<int> Stepped(this int, int) | 生成从作为this参数传递的值开始的无穷序列,并使用指定的步长返回它。 参数:
备注:
|
bool Print() | 输出bool类型的值。 参数:
|
bool PrintLine() | 输出bool类型的值,并跳到新的一行。 参数:
|
byte Print() | 输出byte类型的值。 参数:
|
byte PrintLine() | 输出byte类型的值,并跳到新的一行。 参数:
|
sbyte Print() | 输出sbyte类型的值。 参数:
|
sbyte PrintLine() | 输出sbyte类型的值,并跳到新的一行。 参数:
|
char Print() | 输出char类型的值。 参数:
|
char PrintLine() | 输出char类型的值,并跳到新的一行。 参数:
|
decimal Print() | 输出decimal类型的值。 参数:
|
decimal PrintLine() | 输出decimal类型的值,并跳到新的一行。 参数:
|
double Print() | 输出double类型的值。 参数:
|
double PrintLine() | 输出double类型的值,并跳到新的一行。 参数:
|
float Print() | 输出float类型的值。 参数:
|
float PrintLine() | 输出float类型的值,并跳到新的一行。 参数:
|
int Print() | 输出int类型的值。 参数:
|
int PrintLine() | 输出int类型的值,并跳到新的一行。 参数:
|
uint Print() | 输出uint类型的值。 参数:
|
uint PrintLine() | 输出uint类型的值,并跳到新的一行。 参数:
|
long Print() | 输出long类型的值。 参数:
|
long PrintLine() | 输出long类型的值,并跳到新的一行。 参数:
|
ulong Print() | 输出ulong类型的值。 参数:
|
ulong PrintLine() | 输出ulong类型的值,并跳到新的一行。 参数:
|
short Print() | 输出short类型的值。 参数:
|
short PrintLine() | 输出short类型的值,并跳到新的一行。 参数:
|
ushort Print() | 输出ushort类型的值。 参数:
|
ushort PrintLine() | 输出ushort类型的值,并跳到新的一行。 参数:
|
To, DownTo 和ToThis 用法示例
using NETSquirrel.Extensions;
namespace Test
{
internal static class Program
{
private static void Main(string[] args)
{
1.To(10).PrintLine(); // 1, 2, ..., 10
10.DownTo(1).PrintLine(); // 10, 9, ..., 1
10.ToThis().PrintLine(); // 0, 1, ..., 10
}
}
}
{$reference NETSquirrel.dll}
begin
1.To(10).PrintLine(); // 1, 2, ..., 10
10.DownTo(1).PrintLine(); // 1, 2, ..., 10
10.ToThis().PrintLine(); // 1, 2, ..., 10
end.
您可以通过NETSquirrel.Utils.ArrayUtils 类来读取所有基本类型的数组并对它们进行一些额外的有用操作。 让我们考虑提供的功能。
方法签名 | 简要描述 |
---|---|
T[] GenerateArray<T>(int, Func<int, T>, int) | 使用特定选择器生成指定长度的数组并返回它。 参数:
异常:
备注:
|
T[] GenerateArray<T>(int, T, Func<T, T>) | 使用特定选择器生成指定长度的数组并返回它。 参数:
异常:
|
T[] GenerateArray<T>(int, Func<T[], int, T>) | 使用特定选择器生成指定长度的数组并返回它。 参数:
异常:
备注:
|
int[] CreateRandomIntArray(int, int, int) | 创建随机填充的数组,其中值取自特定范围。 参数:
异常:
|
float[] CreateRandomFloatArray(int, float, float) | 创建随机填充的数组,其中值取自特定范围。 参数:
异常:
|
GenerateArray 用法示例
using NETSquirrel.Extensions;
using NETSquirrel.Utils;
namespace Test
{
internal static class Program
{
private static void Main(string[] args)
{
ArraysUtils.GenerateArray(10, i => i).PrintLine(); // 0, 1, ..., 10
ArraysUtils.GenerateArray(10, 0, x => x + 1).PrintLine(); // 0, 1, ..., 10
}
}
}
{$reference NETSquirrel.dll}
uses NETSquirrel.Utils;
begin
ArraysUtils.GenerateArray(10, i -> i).PrintLine(); // 0, 1, ..., 10
ArraysUtils.GenerateArray(10, 0, x -> x + 1).PrintLine(); // 0, 1, ..., 10
end.
GenerateArray 用法示例 2
using NETSquirrel.Extensions;
using NETSquirrel.Utils;
namespace Test
{
internal static class Program
{
private static void Main(string[] args)
{
ArraysUtils.GenerateArray<int>(10, (array, i) => {
switch (i)
{
case 0:
case 1:
return 1;
default:
return array[i - 1] + array[i - 2];
}
}).PrintLine(); // 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
}
}
}
{$reference NETSquirrel.dll}
uses NETSquirrel.Utils;
begin
ArraysUtils.GenerateArray&<integer>(10, (a, i) -> begin
case i of
0, 1: Result := 1;
else Result := a[i - 1] + a[i - 2];
end;
end).PrintLine(); // 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
end.
方法名称 | 简要描述 |
---|---|
bool[] ReadBoolArray(int, string) | 读取指定长度的 bool[] 类型数组。 参数:
异常:
备注:
|
bool[] ReadBoolArray(int, Func<int, string>) | 读取指定长度的 bool[] 类型数组。 参数:
异常:
备注:
|
bool[] ReadBoolArray(int, ExceptionHandler, string) | 读取指定长度的 bool[] 类型数组。 参数:
异常:
备注:
|
bool[] ReadBoolArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 bool[] 类型数组。 参数:
异常:
备注:
|
byte[] ReadByteArray(int, string) | 读取指定长度的 byte[] 类型数组。 参数:
异常:
备注:
|
byte[] ReadByteArray(int, Func<int, string>) | 读取指定长度的 byte[] 类型数组。 参数:
异常:
备注:
|
byte[] ReadByteArray(int, ExceptionHandler, string) | 读取指定长度的 byte[] 类型数组。 参数:
异常:
备注:
|
byte[] ReadByteArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 byte[] 类型数组。 参数:
异常:
备注:
|
sbyte[] ReadSByteArray(int, string) | 读取指定长度的 sbyte[] 类型数组。 参数:
异常:
备注:
|
sbyte[] ReadSByteArray(int, Func<int, string>) | 读取指定长度的 sbyte[] 类型数组。 参数:
异常:
备注:
|
sbyte[] ReadSByteArray(int, ExceptionHandler, string) | 读取指定长度的 sbyte[] 类型数组。 参数:
异常:
备注:
|
sbyte[] ReadSByteArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 sbyte[] 类型数组。 参数:
异常:
备注:
|
char[] ReadCharArray(int, string) | 读取指定长度的 char[] 类型数组。 参数:
异常:
备注:
|
char[] ReadCharArray(int, Func<int, string>) | 读取指定长度的 char[] 类型数组。 参数:
异常:
备注:
|
decimal[] ReadDecimalArray(int, string) | 读取指定长度的 decimal[] 类型数组。 参数:
异常:
备注:
|
decimal[] ReadDecimalArray(int, Func<int, string>) | 读取指定长度的 decimal[] 类型数组。 参数:
异常:
备注:
|
decimal[] ReadDecimalArray(int, ExceptionHandler, string) | 读取指定长度的 decimal[] 类型数组。 参数:
异常:
备注:
|
decimal[] ReadDecimalArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 decimal[] 类型数组。 参数:
异常:
备注:
|
double[] ReadDooubleArray(int, string) | 读取指定长度的 double[] 类型数组。 参数:
异常:
备注:
|
double[] ReadDooubleArray(int, Func<int, string>) | 读取指定长度的 double[] 类型数组。 参数:
异常:
备注:
|
double[] ReadDooubleArray(int, ExceptionHandler, string) | 读取指定长度的 double[] 类型数组。 参数:
异常:
备注:
|
double[] ReadDooubleArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 double[] 类型数组。 参数:
异常:
备注:
|
float[] ReadFloatArray(int, string) | 读取指定长度的 float[] 类型数组。 参数:
异常:
备注:
|
float[] ReadFloatArray(int, Func<int, string>) | 读取指定长度的 float[] 类型数组。 参数:
异常:
备注:
|
float[] ReadFloatArray(int, ExceptionHandler, string) | 读取指定长度的 float[] 类型数组。 参数:
异常:
备注:
|
float[] ReadFloatArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 float[] 类型数组。 参数:
异常:
备注:
|
int[] ReadIntArray(int, string) | 读取指定长度的 int[] 类型数组。 参数:
异常:
备注:
|
int[] ReadIntArray(int, Func<int, string>) | 读取指定长度的 int[] 类型数组。 参数:
异常:
备注:
|
int[] ReadIntArray(int, ExceptionHandler, string) | 读取指定长度的 int[] 类型数组。 参数:
异常:
备注:
|
int[] ReadIntArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 int[] 类型数组。 参数:
异常:
备注:
|
uint[] ReadUIntArray(int, string) | 读取指定长度的 uint[] 类型数组。 参数:
异常:
备注:
|
uint[] ReadUIntArray(int, Func<int, string>) | 读取指定长度的 uint[] 类型数组。 参数:
异常:
备注:
|
uint[] ReadUIntArray(int, ExceptionHandler, string) | 读取指定长度的 uint[] 类型数组。 参数:
异常:
备注:
|
uint[] ReadUIntArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 uint[] 类型数组。 参数:
异常:
备注:
|
long[] ReadLongArray(int, string) | 读取指定长度的 long[] 类型数组。 参数:
异常:
备注:
|
long[] ReadLongArray(int, Func<int, string>) | 读取指定长度的 long[] 类型数组。 参数:
异常:
备注:
|
long[] ReadLongArray(int, ExceptionHandler, string) | 读取指定长度的 long[] 类型数组。 参数:
异常:
备注:
|
long[] ReadLongArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 long[] 类型数组。 参数:
异常:
备注:
|
ulong[] ReadULongArray(int, string) | 读取指定长度的 ulong[] 类型数组。 参数:
异常:
备注:
|
ulong[] ReadULongArray(int, Func<int, string>) | 读取指定长度的 ulong[] 类型数组。 参数:
异常:
备注:
|
ulong[] ReadULongArray(int, ExceptionHandler, string) | 读取指定长度的 ulong[] 类型数组。 参数:
异常:
备注:
|
ulong[] ReadULongArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 ulong[] 类型数组。 参数:
异常:
备注:
|
short[] ReadShortArray(int, string) | 读取指定长度的 short[] 类型数组。 参数:
异常:
备注:
|
short[] ReadShortArray(int, Func<int, string>) | 读取指定长度的 short[] 类型数组。 参数:
异常:
备注:
|
short[] ReadShortArray(int, ExceptionHandler, string) | 读取指定长度的 short[] 类型数组。 参数:
异常:
备注:
|
short[] ReadShortArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 short[] 类型数组。 参数:
异常:
备注:
|
ushort[] ReadUShortArray(int, string) | 读取指定长度的 ushort[] 类型数组。 参数:
异常:
备注:
|
ushort[] ReadUShortArray(int, Func<int, string>) | 读取指定长度的 ushort[] 类型数组。 参数:
异常:
备注:
|
ushort[] ReadUShortArray(int, ExceptionHandler, string) | 读取指定长度的 ushort[] 类型数组。 参数:
异常:
备注:
|
ushort[] ReadUShortArray(int, ExceptionHandler, Func<int, string>) | 读取指定长度的 ushort[] 类型数组。 参数:
异常:
备注:
|
string[] ReadStringArray(int, string) | 读取指定长度的 string[] 类型数组。 参数:
异常:
备注:
|
string[] ReadStringArray(int, Func<int, string>) | 读取指定长度的 string[] 类型数组。 参数:
异常:
备注:
|
ReadBoolArray 用法示例
using NETSquirrel.Extensions;
using NETSquirrel.Utils;
namespace Test
{
internal static class Program
{
private static void Main(string[] args)
{
ArraysUtils.ReadBoolArray(10, "item {0} = ").PrintLine();
ArraysUtils.ReadBoolArray(10, i => $"{new[] { "even", "odd" }[i % 2]} item = ").PrintLine();
}
}
}
{$reference NETSquirrel.dll}
uses NETSquirrel.Utils;
begin
ArraysUtils.ReadBoolArray(10, 'item {0} = ').PrintLine();
var lambda: integer -> string := i -> string.Format('{0} item = ', (new string[] ('even', 'odd'))[i mod 2]);
ArraysUtils.ReadBoolArray(10, lambda).PrintLine();
end.
ReadBoolArray 用法示例 2
using NETSquirrel.Extensions;
using NETSquirrel.Utils;
namespace Test
{
internal static class Program
{
private static void Main(string[] args)
{
ArraysUtils.ReadBoolArray(10, e => e.Message.PrintLine(), "item {0} = ").PrintLine();
ArraysUtils.ReadBoolArray(10, e => e.Message.PrintLine(),
i => $"{new[] { "even", "odd" }[i % 2]} item = ").PrintLine();
}
}
}
{$reference NETSquirrel.dll}
uses NETSquirrel.Utils;
uses NETSquirrel;
begin
ArraysUtils.ReadBoolArray(10, procedure(e) -> e.Message.PrintLine(), 'item {0} = ').PrintLine();
ArraysUtils.ReadBoolArray(10, procedure(e) -> e.Message.PrintLine(),
i -> string.Format('{0} item = ', (new string[] ('even', 'odd'))[i mod 2])).PrintLine();
end.