Files
playbook/skills/tsl-api-reference/references/codegen/builtin/runtime.md
T
csh 9010829c6d feat(tsl-api-reference): expand and reorganize api catalog
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.
2026-08-10 18:26:24 +08:00

18 KiB

Builtin - 运行时

运行时

setPrecision(number, precision)

声明:function

从指定精度四舍五入截断小数点位数,返回number的保留小数点Precision位后的值

参数 类型 说明
number real 实数/实数数组。
precision integer 整数,目的是为了截取实数后面小数点的位数。

返回:real

示例

范例01:保留三位小数

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 后再还原

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 字符串

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 字符串

data := array(("name": "Tinysoft", "value": 1));
ok := exportCsv(data, csv_text);
echo ok, ":", csv_text, "\n";

setProfiler(flag)

声明:function

设置需要记录的优化信息(当设置了记录优化信息的时候,运行速度可能会比正常运行慢很多)并返回设置前的状态值,如果设置了记录优化信息,在平台运行的模型结束的时候会在终端打开优化信息的窗口,用户也可以调用GetProfilerInfo来手动获得优化信息。

参数 类型 说明
flag 可选。整数,若省略则仅返回状态值而不设置。设置需要记录的优化信息,由一个四位二进制数组成,即以下几种常见组合说明: 取值 说明

返回:integer

示例

范例01:分析纯数值循环

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:从数组中随机选择元素

candidates := array(10, 20, 30);
selected := randomFrom(candidates);
echo selected = 10 or selected = 20 or selected = 30, "\n";
// 输出:1

getSysParams()

声明:function

取出所有系统参数的值。

返回:array

示例

范例01:读取全部系统参数

echo toStn(getSysParams()), "\n";

call(func_name, p1, pn)

声明:function

根据名称或者函数指针调用指定的函数,后面带的参数将自动送入该函数。

参数 类型 说明
func_name string|tfunction 如果是字符串,表示函数的名称,也可以是函数类型。
p1 any 整数,参数1
pn any 整数,参数N。

返回:any

示例

范例01:按名称调用转换函数

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:通过参数数组调用转换函数

echo callInArray("StrToIntDef", array("123", 0)), "\n";

dupValue(value)

声明:function

返回一份value的复制值,一般无需要使用,特别用于不需要变参的函数调用。

参数 类型 说明
value any 任意类型,被复制的数据

返回:any

示例

范例01:复制数组值

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:计算引用当前变量的语句表达式

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:设置对象属性后调用成员方法

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:通过数组设置对象属性并调用成员方法

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:根据条件选择较大值

a := 1;
b := 2;
echo ifThen(a > b, a, b), "\n";

integer(value)

声明:function

强制成整数,类型转换,对有些必需要指定类型的函数有用,如format

参数 类型 说明
value real 实数或整数

返回:integer

示例

范例01:将实数转换为整数

echo integer(123.456), "\n";

int64(value)

声明:function

强制成整数,类型转换,对有些必需要指定类型的函数有用,如format

参数 类型 说明
value real 实数或整数

返回:int64

示例

范例01:将数值转换为 64 位整数

echo int64(123), "\n";

real(value)

声明:function

强制为实数,类型转换,对有些必需要指定类型的函数有用,如format

参数 类型 说明
value real 实数或整数

返回:real

示例

范例01:将整数转换为实数

echo real(123), "\n";

wideString(value)

声明:function

将字符串转为Unicode字符串,或者强制让二进制为Unicode字符串。

参数 类型 说明
value string|binary|widestring 字符串或者二进制数据

返回:widestring

示例

范例01:将字符串转换为宽字符串

echo wideString("Tinysoft"), "\n";

binary(value)

声明:function

强制把字符串或者Unicode字符串转化为二进制流,对有些必需要指定类型的函数有用

参数 类型 说明
value string|binary|widestring 字符串或者二进制数据

返回:binary

示例

范例01:将字符串转换为二进制值

echo toStn(binary("Tinysoft")), "\n";

stn(v)

声明:function

把STN串转换为任意类型。

参数 类型 说明
v string 字符串,STN串

返回:any

示例

范例01:还原 STN 字符串

serialized := toStn(array(1, 2, 3));
echo toStn(stn(serialized)), "\n";

randomize()

声明:function

已废弃函数。

返回:any

示例

范例01:初始化随机数状态

randomize();
echo random(), "\n";

random()

声明:function

(参考文档未提供简述。)

返回:real

示例

范例01:生成随机数

echo random(), "\n";

random(value)

声明:function

返回从 0value - 1 的随机整数。

参数 类型 说明
value integer 随机范围上限,不包含该值

返回:integer

示例

echo random(1), "\n";
// 输出:0

tslfilename()

声明:function

获取正在执行的 .tsl 主脚本完整路径。

返回:string

示例

范例01:读取当前主脚本路径

echo tslfilename(), "\n";

sysgettsllibpath()

声明:function

获取当前函数库查找路径。

返回:string

示例

范例01:读取当前函数库查找路径

echo sysgettsllibpath(), "\n";

错误与断言函数

getProfilerInfo(clear)

声明:function

获得记录的优化信息。

参数 类型 说明
clear bool Boolean。

返回:array

示例

范例01:读取纯数值循环的分析信息

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 字符串

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 二进制流

stream := toStm(array(1, 2, 3));
echo toStn(stm(stream)), "\n";

debugRunEnv(sys_param)

声明:function

将当前变量递交到客户端调试窗口

参数 类型 说明
sys_param boolean 是否同时输出系统参数

返回:integer

示例

范例01:不输出系统参数

result := debugRunEnv(false);
echo result;
// 输出:0

getEstSize(value)

声明:function

估算变量占用的内存空间

参数 类型 说明
value any 要估算的变量

返回:integer

示例

范例01:估算数组占用的空间

value := array(1, 2, 3);
echo getEstSize(value) >= 0;
// 输出:1

mToc(tick)

声明:function

返回指定计时点或最近一次 mTic 之后经过的秒数

参数 类型 说明
tick real 可选。由 mTic 返回的计时点,省略时使用最近一次 mTic

返回:real

示例

范例01:计算指定计时点之后经过的秒数

tick := mTic;
echo mToc(tick) >= 0;
// 输出:1

范例02:使用最近一次计时点

mTic;
echo mToc() >= 0;
// 输出:1