Flatten builtin pages, add third-party and platform scopes, and import financial and data warehouse references. Keep the existing generated index without rebuilding after signature normalization.
701 lines
18 KiB
Markdown
701 lines
18 KiB
Markdown
# Builtin - 运行时
|
|
|
|
## 运行时
|
|
|
|
## `setPrecision(number, precision)`
|
|
|
|
声明:function
|
|
|
|
从指定精度四舍五入截断小数点位数,返回number的保留小数点Precision位后的值
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ------- | ------------------------------------------ |
|
|
| `number` | real | 实数/实数数组。 |
|
|
| `precision` | integer | 整数,目的是为了截取实数后面小数点的位数。 |
|
|
|
|
返回:real
|
|
|
|
### 示例
|
|
|
|
范例01:保留三位小数
|
|
|
|
```tsl
|
|
echo setPrecision(123.4567, 3), "\n";
|
|
```
|
|
|
|
## `toStm(v, gtype, stm_type, p_n)`
|
|
|
|
声明:function
|
|
|
|
转换成为STM流数据。可以通过stmType参数控制是否转换为新流模式或超大流新流模式,新的stm流占用空间更少,访问效率更高。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---------- | ------- | ---------------------------------------------------------------------------------------------------------- |
|
|
| `v` | | 任意类型数据 |
|
|
| `gtype` | integer | 可选。图型等特殊类型,默认为0 |
|
|
| `stm_type` | integer | 可选。流模式,0:普通模式;1:新流模式;2:超极大流的紧缩模式;默认为0。其中,超大流模式能处理超大结果集。 |
|
|
| `p_n` | integer | 可选。精度,默认为-1,表示全精度 |
|
|
|
|
返回:binary
|
|
|
|
### 示例
|
|
|
|
范例01:将数组转换为 STM 后再还原
|
|
|
|
```tsl
|
|
stream := toStm(array(1, 2, 3));
|
|
echo toStn(stm(stream)), "\n";
|
|
```
|
|
|
|
## `toStn(v, n)`
|
|
|
|
声明:function
|
|
|
|
转换成为STN字符串。小数位四舍五入,尾数是五就进一。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ------- | --------------------------------------------------------------------- |
|
|
| `v` | any | 任意类型数据 |
|
|
| `n` | integer | 可选。整型,保留小数点后的位数。只对v是小数时且v的小数数位比N大有效。 |
|
|
|
|
返回:string
|
|
|
|
### 示例
|
|
|
|
范例01:将数值转换为 STN 字符串
|
|
|
|
```tsl
|
|
echo toStn(1.2345, 2), "\n";
|
|
```
|
|
|
|
## `exportCsv(data, csv_str, include_index, include_header)`
|
|
|
|
声明:function
|
|
|
|
将指定数组Data转换为csv格式字符串并存储在csvStr参数中。仅支持一维及二维数组的转换。和ExportCsvne的区别:在处理浮点数据时,ExportCsv的结果会输出为1E15等格式。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---------------- | ------ | ----------------------------------------------------------- |
|
|
| `data` | array | 数组类型,要转换成csv格式字符串的数组。 |
|
|
| `csv_str` | string | 字符串类型,转换成功的csv格式字符串(输出值)。 |
|
|
| `include_index` | bool | 可选。布尔类型。转换结果是否包含数组下标信息。默认为False。 |
|
|
| `include_header` | bool | 可选。布尔类型。转换结果是否包含字段头部信息。默认为True。 |
|
|
|
|
返回:bool
|
|
|
|
### 示例
|
|
|
|
范例01:将二维数组转换为 CSV 字符串
|
|
|
|
```tsl
|
|
data := array(("name": "Tinysoft", "value": 1));
|
|
ok := exportCsv(data, csv_text);
|
|
echo ok, ":", csv_text, "\n";
|
|
```
|
|
|
|
## `setProfiler(flag)`
|
|
|
|
声明:function
|
|
|
|
设置需要记录的优化信息(当设置了记录优化信息的时候,运行速度可能会比正常运行慢很多)并返回设置前的状态值,如果设置了记录优化信息,在平台运行的模型结束的时候会在终端打开优化信息的窗口,用户也可以调用GetProfilerInfo来手动获得优化信息。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------ | ---- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
| `flag` | | 可选。整数,若省略则仅返回状态值而不设置。设置需要记录的优化信息,由一个四位二进制数组成,即以下几种常见组合说明: 取值 说明 |
|
|
|
|
返回:integer
|
|
|
|
### 示例
|
|
|
|
范例01:分析纯数值循环
|
|
|
|
```tsl
|
|
previous_flag := setProfiler(7);
|
|
sum := 0;
|
|
for i := 1 to 1000 do
|
|
sum += i;
|
|
setProfiler(previous_flag);
|
|
echo sum, "\n";
|
|
```
|
|
|
|
## `randomfrom(avalues)`
|
|
|
|
声明:function
|
|
|
|
返回一个随机的数组元素,这个数组是由参数Avalue传递进来的。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ------------ | ---------------------------------- |
|
|
| `avalues` | array of any | 数组名称,可以是整数数组或实数数组 |
|
|
|
|
返回:any
|
|
|
|
### 示例
|
|
|
|
范例01:从数组中随机选择元素
|
|
|
|
```tsl
|
|
candidates := array(10, 20, 30);
|
|
selected := randomFrom(candidates);
|
|
echo selected = 10 or selected = 20 or selected = 30, "\n";
|
|
// 输出:1
|
|
```
|
|
|
|
## `getSysParams()`
|
|
|
|
声明:function
|
|
|
|
取出所有系统参数的值。
|
|
|
|
返回:array
|
|
|
|
### 示例
|
|
|
|
范例01:读取全部系统参数
|
|
|
|
```tsl
|
|
echo toStn(getSysParams()), "\n";
|
|
```
|
|
|
|
## `call(func_name, p1, pn)`
|
|
|
|
声明:function
|
|
|
|
根据名称或者函数指针调用指定的函数,后面带的参数将自动送入该函数。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ----------------- | ------------------------------------------------ |
|
|
| `func_name` | string\|tfunction | 如果是字符串,表示函数的名称,也可以是函数类型。 |
|
|
| `p1` | any | 整数,参数1 |
|
|
| `pn` | any | 整数,参数N。 |
|
|
|
|
返回:any
|
|
|
|
### 示例
|
|
|
|
范例01:按名称调用转换函数
|
|
|
|
```tsl
|
|
echo call("StrToIntDef", "123", 0), "\n";
|
|
```
|
|
|
|
## `callInArray(func_name, param_content)`
|
|
|
|
声明:function
|
|
|
|
根据名称或者函数指针调用指定的函数,将参数放入一个数组中送入该函数,不支持变参。另外,天软的函数指针可以用thisfunction()获得。该函数与call函数功能类似,注意两个函数设置参数的区别。Call函数直接列举,CallInArray函数将调用的函数的参数放在Array中。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------------- | ----------------- | ---------------------------------------------------------------------------- |
|
|
| `func_name` | string\|tfunction | 如果是字符串,表示函数名称,也可以是函数类型。 |
|
|
| `param_content` | array | 数组类型,第一个参数放在ParamContent[0],第二个放在ParamContent[1]以此类推。 |
|
|
|
|
返回:any
|
|
|
|
### 示例
|
|
|
|
范例01:通过参数数组调用转换函数
|
|
|
|
```tsl
|
|
echo callInArray("StrToIntDef", array("123", 0)), "\n";
|
|
```
|
|
|
|
## `dupValue(value)`
|
|
|
|
声明:function
|
|
|
|
返回一份value的复制值,一般无需要使用,特别用于不需要变参的函数调用。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ---- | ---------------------- |
|
|
| `value` | any | 任意类型,被复制的数据 |
|
|
|
|
返回:any
|
|
|
|
### 示例
|
|
|
|
范例01:复制数组值
|
|
|
|
```tsl
|
|
source_values := array(1, 2);
|
|
copied_values := dupValue(source_values);
|
|
copied_values[0] := 9;
|
|
echo toStn(array(source_values, copied_values)), "\n";
|
|
```
|
|
|
|
## `eval(exp)`
|
|
|
|
声明:function
|
|
|
|
计算表达式并返回表达式的值。表达式可以引用当前作用域中的变量。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----- | ----------- | ---------------- |
|
|
| `exp` | texpression | 要计算的表达式。 |
|
|
|
|
返回:any
|
|
|
|
### 示例
|
|
|
|
范例01:计算引用当前变量的语句表达式
|
|
|
|
```tsl
|
|
a := 1;
|
|
b := 2;
|
|
echo eval(@(a + b)), "\n";
|
|
// 输出:3
|
|
```
|
|
|
|
## `invoke(obj, member_name, member_value, p1, ..., pn)`
|
|
|
|
声明:function
|
|
|
|
按名称调用对象成员方法或设置成员属性,支持调用重载方法。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------------- | --------- | -------------------------------------------- |
|
|
| `obj` | tslobject | 实例对象。 |
|
|
| `member_name` | string | 成员方法或属性名称。 |
|
|
| `member_value` | boolean | 成员类型:0 表示方法,1 表示属性。 |
|
|
| `p1` | any | 设置属性时为属性值;调用方法时为第一个参数。 |
|
|
| `pn` | any | 可选。成员方法的后续参数。 |
|
|
|
|
返回:any
|
|
|
|
设置属性时返回 0;调用方法时返回方法的执行结果。
|
|
|
|
### 示例
|
|
|
|
范例01:设置对象属性后调用成员方法
|
|
|
|
```tsl
|
|
obj := new RuntimeInvokeExample();
|
|
invoke(obj, "name", 1, "Tinysoft");
|
|
echo invoke(obj, "label", 0, "TSL"), "\n";
|
|
// 输出:TSL:Tinysoft
|
|
|
|
type RuntimeInvokeExample = class
|
|
public
|
|
name;
|
|
function label(prefix);
|
|
begin
|
|
return prefix + ":" + name;
|
|
end;
|
|
end;
|
|
```
|
|
|
|
## `invokeinarray(obj, member_name, member_value, params)`
|
|
|
|
声明:function
|
|
|
|
按名称调用对象成员方法或设置成员属性,并用数组传递属性值或方法参数。该函数支持命名参数。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| -------------- | --------- | ------------------------------------------------------------------ |
|
|
| `obj` | tslobject | 实例对象。 |
|
|
| `member_name` | string | 成员方法或属性名称。 |
|
|
| `member_value` | boolean | 成员类型:0 表示方法,1 表示属性。 |
|
|
| `params` | array | 属性值或方法参数;无参数方法传入空数组,字符串下标可作为命名参数。 |
|
|
|
|
返回:any
|
|
|
|
设置属性时返回 0;调用方法时返回方法的执行结果。
|
|
|
|
### 示例
|
|
|
|
范例01:通过数组设置对象属性并调用成员方法
|
|
|
|
```tsl
|
|
obj := new RuntimeInvokeArrayExample();
|
|
invokeinarray(obj, "name", 1, array("Tinysoft"));
|
|
echo invokeinarray(obj, "label", 0, array("TSL")), "\n";
|
|
// 输出:TSL:Tinysoft
|
|
|
|
type RuntimeInvokeArrayExample = class
|
|
public
|
|
name;
|
|
function label(prefix);
|
|
begin
|
|
return prefix + ":" + name;
|
|
end;
|
|
end;
|
|
```
|
|
|
|
## `ifThen(avalue, atrue, a_false)`
|
|
|
|
声明:function
|
|
|
|
如果Avalue值为真,返回参数Atrue,否则返回参数Afalse
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| --------- | ---- | -------------------------- |
|
|
| `avalue` | bool | 布尔类型,判定条件 |
|
|
| `atrue` | any | 任意类型,Avalue为真返回值 |
|
|
| `a_false` | any | 任意类型,Avalue为假返回值 |
|
|
|
|
返回:any
|
|
|
|
### 示例
|
|
|
|
范例01:根据条件选择较大值
|
|
|
|
```tsl
|
|
a := 1;
|
|
b := 2;
|
|
echo ifThen(a > b, a, b), "\n";
|
|
```
|
|
|
|
## `integer(value)`
|
|
|
|
声明:function
|
|
|
|
强制成整数,类型转换,对有些必需要指定类型的函数有用,如format
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ---- | ---------- |
|
|
| `value` | real | 实数或整数 |
|
|
|
|
返回:integer
|
|
|
|
### 示例
|
|
|
|
范例01:将实数转换为整数
|
|
|
|
```tsl
|
|
echo integer(123.456), "\n";
|
|
```
|
|
|
|
## `int64(value)`
|
|
|
|
声明:function
|
|
|
|
强制成整数,类型转换,对有些必需要指定类型的函数有用,如format
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ---- | ---------- |
|
|
| `value` | real | 实数或整数 |
|
|
|
|
返回:int64
|
|
|
|
### 示例
|
|
|
|
范例01:将数值转换为 64 位整数
|
|
|
|
```tsl
|
|
echo int64(123), "\n";
|
|
```
|
|
|
|
## `real(value)`
|
|
|
|
声明:function
|
|
|
|
强制为实数,类型转换,对有些必需要指定类型的函数有用,如format
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ---- | ---------- |
|
|
| `value` | real | 实数或整数 |
|
|
|
|
返回:real
|
|
|
|
### 示例
|
|
|
|
范例01:将整数转换为实数
|
|
|
|
```tsl
|
|
echo real(123), "\n";
|
|
```
|
|
|
|
## `wideString(value)`
|
|
|
|
声明:function
|
|
|
|
将字符串转为Unicode字符串,或者强制让二进制为Unicode字符串。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | -------------------------- | -------------------- |
|
|
| `value` | string\|binary\|widestring | 字符串或者二进制数据 |
|
|
|
|
返回:widestring
|
|
|
|
### 示例
|
|
|
|
范例01:将字符串转换为宽字符串
|
|
|
|
```tsl
|
|
echo wideString("Tinysoft"), "\n";
|
|
```
|
|
|
|
## `binary(value)`
|
|
|
|
声明:function
|
|
|
|
强制把字符串或者Unicode字符串转化为二进制流,对有些必需要指定类型的函数有用
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | -------------------------- | -------------------- |
|
|
| `value` | string\|binary\|widestring | 字符串或者二进制数据 |
|
|
|
|
返回:binary
|
|
|
|
### 示例
|
|
|
|
范例01:将字符串转换为二进制值
|
|
|
|
```tsl
|
|
echo toStn(binary("Tinysoft")), "\n";
|
|
```
|
|
|
|
## `stn(v)`
|
|
|
|
声明:function
|
|
|
|
把STN串转换为任意类型。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ------ | ------------- |
|
|
| `v` | string | 字符串,STN串 |
|
|
|
|
返回:any
|
|
|
|
### 示例
|
|
|
|
范例01:还原 STN 字符串
|
|
|
|
```tsl
|
|
serialized := toStn(array(1, 2, 3));
|
|
echo toStn(stn(serialized)), "\n";
|
|
```
|
|
|
|
## `randomize()`
|
|
|
|
声明:function
|
|
|
|
已废弃函数。
|
|
|
|
返回:any
|
|
|
|
### 示例
|
|
|
|
范例01:初始化随机数状态
|
|
|
|
```tsl
|
|
randomize();
|
|
echo random(), "\n";
|
|
```
|
|
|
|
## `random()`
|
|
|
|
声明:function
|
|
|
|
(参考文档未提供简述。)
|
|
|
|
返回:real
|
|
|
|
### 示例
|
|
|
|
范例01:生成随机数
|
|
|
|
```tsl
|
|
echo random(), "\n";
|
|
```
|
|
|
|
## `random(value)`
|
|
|
|
声明:function
|
|
|
|
返回从 `0` 到 `value - 1` 的随机整数。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ------- | ------------------------ |
|
|
| `value` | integer | 随机范围上限,不包含该值 |
|
|
|
|
返回:integer
|
|
|
|
### 示例
|
|
|
|
```tsl
|
|
echo random(1), "\n";
|
|
// 输出:0
|
|
```
|
|
|
|
## `tslfilename()`
|
|
|
|
声明:function
|
|
|
|
获取正在执行的 `.tsl` 主脚本完整路径。
|
|
|
|
返回:string
|
|
|
|
### 示例
|
|
|
|
范例01:读取当前主脚本路径
|
|
|
|
```tsl
|
|
echo tslfilename(), "\n";
|
|
```
|
|
|
|
## `sysgettsllibpath()`
|
|
|
|
声明:function
|
|
|
|
获取当前函数库查找路径。
|
|
|
|
返回:string
|
|
|
|
### 示例
|
|
|
|
范例01:读取当前函数库查找路径
|
|
|
|
```tsl
|
|
echo sysgettsllibpath(), "\n";
|
|
```
|
|
|
|
## 错误与断言函数
|
|
|
|
## `getProfilerInfo(clear)`
|
|
|
|
声明:function
|
|
|
|
获得记录的优化信息。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ---- | --------- |
|
|
| `clear` | bool | Boolean。 |
|
|
|
|
返回:array
|
|
|
|
### 示例
|
|
|
|
范例01:读取纯数值循环的分析信息
|
|
|
|
```tsl
|
|
previous_flag := setProfiler(7);
|
|
sum := 0;
|
|
for i := 1 to 1000 do
|
|
sum += i;
|
|
profiler_info := getProfilerInfo(1);
|
|
setProfiler(previous_flag);
|
|
echo length(profiler_info), "\n";
|
|
```
|
|
|
|
## `importCsv(csv_str, data, include_index, include_header, single_arr)`
|
|
|
|
声明:function
|
|
|
|
将指定csv格式字符串csvStr转换为数组,并存储在Data参数中。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---------------- | ------ | --------------------------------------------------------------- |
|
|
| `csv_str` | string | 字符串类型,csv格式字符串。 |
|
|
| `data` | array | 数组类型,转换成功的数组(输出值)。 |
|
|
| `include_index` | bool | 可选。布尔类型。指定字符串中是否包含数组下标信息。默认为False。 |
|
|
| `include_header` | bool | 可选。布尔类型。指定字符串中是否包含字段头部信息。默认为True。 |
|
|
| `single_arr` | bool | 可选。布尔类型。是否转换为一个一维数组。默认为False。 |
|
|
|
|
返回:bool
|
|
|
|
### 示例
|
|
|
|
范例01:解析内存中的 CSV 字符串
|
|
|
|
```tsl
|
|
csv_text := "name,value\nTinysoft,1\n";
|
|
ok := importCsv(csv_text, data);
|
|
echo ok, ":", toStn(data), "\n";
|
|
```
|
|
|
|
## `stm(v)`
|
|
|
|
声明:function
|
|
|
|
把STM流转换为任意类型。
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ---- | ------ | ----------------- |
|
|
| `v` | binary | 二进制类型,STM流 |
|
|
|
|
返回:any
|
|
|
|
### 示例
|
|
|
|
范例01:还原 STM 二进制流
|
|
|
|
```tsl
|
|
stream := toStm(array(1, 2, 3));
|
|
echo toStn(stm(stream)), "\n";
|
|
```
|
|
|
|
## `debugRunEnv(sys_param)`
|
|
|
|
声明:function
|
|
|
|
将当前变量递交到客户端调试窗口
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ----------- | ------- | -------------------- |
|
|
| `sys_param` | boolean | 是否同时输出系统参数 |
|
|
|
|
返回:integer
|
|
|
|
### 示例
|
|
|
|
范例01:不输出系统参数
|
|
|
|
```tsl
|
|
result := debugRunEnv(false);
|
|
echo result;
|
|
// 输出:0
|
|
```
|
|
|
|
## `getEstSize(value)`
|
|
|
|
声明:function
|
|
|
|
估算变量占用的内存空间
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------- | ---- | ------------ |
|
|
| `value` | any | 要估算的变量 |
|
|
|
|
返回:integer
|
|
|
|
### 示例
|
|
|
|
范例01:估算数组占用的空间
|
|
|
|
```tsl
|
|
value := array(1, 2, 3);
|
|
echo getEstSize(value) >= 0;
|
|
// 输出:1
|
|
```
|
|
|
|
## `mToc(tick)`
|
|
|
|
声明:function
|
|
|
|
返回指定计时点或最近一次 `mTic` 之后经过的秒数
|
|
|
|
| 参数 | 类型 | 说明 |
|
|
| ------ | ---- | ------------------------------------------------------- |
|
|
| `tick` | real | 可选。由 `mTic` 返回的计时点,省略时使用最近一次 `mTic` |
|
|
|
|
返回:real
|
|
|
|
### 示例
|
|
|
|
范例01:计算指定计时点之后经过的秒数
|
|
|
|
```tsl
|
|
tick := mTic;
|
|
echo mToc(tick) >= 0;
|
|
// 输出:1
|
|
```
|
|
|
|
范例02:使用最近一次计时点
|
|
|
|
```tsl
|
|
mTic;
|
|
echo mToc() >= 0;
|
|
// 输出:1
|
|
```
|