# Builtin - 系统相关函数 ## 函数 ### `dataType(value, mode)` 返回数据类型编号,支持数组遍历模式。 | 参数 | 类型 | 说明 | | ------- | ---- | ------------------------------------------------------- | | `value` | any | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:array ### `ifInt(value, mode)` 判断是否为 32 位整数类型。 | 参数 | 类型 | 说明 | | ------- | ----- | ------------------------------------------------------- | | `value` | array | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:bool ### `ifInt64(value, mode)` 判断是否为 64 位整数类型。 | 参数 | 类型 | 说明 | | ------- | ---- | ------------------------------------------------------- | | `value` | any | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:bool ### `ifReal(value, mode)` 判断是否为 实数类型。 | 参数 | 类型 | 说明 | | ------- | ----- | ------------------------------------------------------- | | `value` | array | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:bool ### `ifNumber(value, mode)` 判断是否为 数字(整数或实数)类型。 | 参数 | 类型 | 说明 | | ------- | ----- | ------------------------------------------------------- | | `value` | array | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:bool ### `ifString(value, mode)` 判断是否为 字符串类型。 | 参数 | 类型 | 说明 | | ------- | ----- | ------------------------------------------------------- | | `value` | array | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:bool ### `ifArray(value, mode)` 判断是否为 数组类型。 | 参数 | 类型 | 说明 | | ------- | ---- | ------------------------------------------------------- | | `value` | any | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:bool ### `ifNil(value, mode)` 判断是否为 Nil类型。 | 参数 | 类型 | 说明 | | ------- | ---- | ------------------------------------------------------- | | `value` | any | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:bool ### `ifNone(value[, tag])` 判断对象 `operator[1]` 多级下标写入时传入的 None 标记值。 | 参数 | 类型 | 说明 | | ------- | ---- | ------------------------------------------------ | | `value` | void | `operator[1]` 中间层或回滚层传入的 None 值 | | `tag` | any | None 标记值;中间层第一层为 `0`,回滚标记为 `-1` | 返回:bool ### `ifExp(value, mode)` 判断是否为 表达式类型。 | 参数 | 类型 | 说明 | | ------- | ---- | ------------------------------------------------------- | | `value` | any | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:bool ### `ifGraph(value)` 判断是否为 图形类型。 | 参数 | 类型 | 说明 | | ------- | ---- | -------- | | `value` | any | 输入数据 | 返回:bool ### `ifGraphGroup(value)` 判断是否为 图形组类型。 | 参数 | 类型 | 说明 | | ------- | ---- | -------- | | `value` | any | 输入数据 | 返回:bool ### `ifBinary(value, mode)` 判断是否为 二进制/Buffer类型。 | 参数 | 类型 | 说明 | | ------- | ---- | ------------------------------------------------------- | | `value` | any | 输入数据 | | `mode` | any | 遍历模式(可选;-1 对第一维逐项判断;1 对每个元素判断) | 返回:bool ### `ifMatrix(value)` 判断是否为 Matrix类型。 | 参数 | 类型 | 说明 | | ------- | ---- | -------- | | `value` | any | 输入数据 | 返回:bool ### `ifFmarray(value)` 判断是否为 FMArray 类型。 | 参数 | 类型 | 说明 | | ------- | ---- | -------- | | `value` | any | 输入数据 | 返回:bool ### `ifObj(value)` 判断是否为对象类型。 | 参数 | 类型 | 说明 | | ------- | ---- | -------- | | `value` | any | 输入数据 | 返回:bool ### `createBinary(size)` 创建 Binary 缓冲区。 | 参数 | 类型 | 说明 | | ------ | ---- | -------- | | `size` | any | 字节长度 | 返回:binary ## 复制函数 ### `dupValue(value)` 复制值,避免被调用函数修改原变量。 | 参数 | 类型 | 说明 | | ------- | ---- | ------ | | `value` | any | 输入值 | 返回:any ## 条件选择函数 ### `ifThen(condition, true_value, false_value)` 条件成立返回 true_value,否则返回 false_value。 | 参数 | 类型 | 说明 | | ------------- | ---- | ------------------ | | `condition` | any | 判断条件 | | `true_value` | any | 条件成立时返回值 | | `false_value` | any | 条件不成立时返回值 | 返回:bool ## 数据类型转换函数 ### `integer(value)` 将数值转换为整数。 | 参数 | 类型 | 说明 | | ------- | ----- | -------- | | `value` | float | 输入数值 | 返回:any ### `int64(value)` 将数值转换为 64 位整数。 | 参数 | 类型 | 说明 | | ------- | ----- | -------- | | `value` | float | 输入数值 | 返回:any ### `real(value)` 将数值转换为实数。 | 参数 | 类型 | 说明 | | ------- | ----- | -------- | | `value` | float | 输入数值 | 返回:float ### `wideString(value)` 将数据转换为 Unicode 字符串。 | 参数 | 类型 | 说明 | | ------- | ------ | -------- | | `value` | string | 输入数据 | 返回:string ### `binary(value)` 将数据转换为二进制流。 | 参数 | 类型 | 说明 | | ------- | ------ | -------- | | `value` | string | 输入数据 | 返回:binary ### `setPrecision(value, digits)` 设置数值的小数精度。 | 参数 | 类型 | 说明 | | -------- | ----- | -------- | | `value` | float | 输入数值 | | `digits` | any | 小数位数 | 返回:float ### `toStm(value, mode, precision[, arg4])` 将数据序列化为 STM 二进制流。 | 参数 | 类型 | 说明 | | ----------- | ----- | ------------------ | | `value` | array | 输入数据 | | `mode` | any | 序列化模式(可选) | | `precision` | any | 小数位数(可选) | | `arg4` | any | | 返回:binary ### `toStn(value, digits)` 将数值格式化为 STN 字符串。 | 参数 | 类型 | 说明 | | -------- | ----- | ---------------- | | `value` | float | 输入数值 | | `digits` | any | 小数位数(可选) | 返回:string ### `exportCsv(data, out_text, include_index, include_header)` 将数组导出为 CSV 格式字符串。 | 参数 | 类型 | 说明 | | ---------------- | ------ | ------------------------- | | `data` | array | 数组数据 | | `out_text` | string | 输出字符串(引用返回) | | `include_index` | any | 是否包含下标(可选,1/0) | | `include_header` | any | 是否包含表头(可选,1/0) | 返回:array ### `stn(v)` 解析 STN 数值字符串。 | 参数 | 类型 | 说明 | | ---- | ------ | ---------- | | `v` | string | STN 字符串 | 返回:string ## 全局缓存函数 ### `ifCache(value)` 判断值是否仍是全局缓存引用。 | 参数 | 类型 | 说明 | | ------- | ---- | ---------- | | `value` | any | 待判断的值 | 返回:bool ## 随机函数 ### `randomize()` 随机函数相关函数。 返回:any ### `random([value])` 生成随机数。 | 参数 | 类型 | 说明 | | ------- | ---- | -------------------- | | `value` | any | value 为上限(可选) | 返回:float ### `randomFrom(avalues)` 从数组中随机取一个元素。 | 参数 | 类型 | 说明 | | --------- | ----- | -------- | | `avalues` | array | 候选数组 | 返回:array ## 表达式相关函数 ### `tslfilename()` 获取正在执行的 `.tsl` 主脚本完整路径。 返回:string ### `sysgettsllibpath()` 获取当前函数库查找路径。 返回:string ## 错误与断言函数 ### `assert(check, error_message)` 断言 `check` 是否为真值;为真时返回 `0` 并继续执行,为假时抛出 `error_message` 指定的运行时错误。 | 参数 | 类型 | 说明 | | --------------- | ------ | --------------------------------------- | | `check` | any | 按 TSL 真值规则判断;真值通过,假值失败 | | `error_message` | string | 断言失败时抛出的错误信息 | 返回:any ## 性能优化相关函数 ### `setProfiler(flags)` 设置性能分析开关与统计范围。 | 参数 | 类型 | 说明 | | ------- | ---- | -------------- | | `flags` | any | 统计选项位掩码 | 返回:void ### `getProfilerInfo(mode)` 获取性能分析信息。 | 参数 | 类型 | 说明 | | ------ | ---- | --------------------------- | | `mode` | any | 可选;传 1 仅返回信息不弹窗 | 返回:any ## 数据类型函数 ### `ifGraph(value, n)` 判断value是否是一个图形类型。可通过可选参数N对数组中的行或元素进行判断。 | 参数 | 类型 | 说明 | | ------- | ---- | -------------------------------- | | `value` | any | 任意类型数据 | | `n` | any | 可选参数,整数。具体参考返回说明 | 返回:bool ### `ifGraphgroup(value, n)` 判断value是否是一个图形组合类型。可通过可选参数N对数组中的行或元素进行判断。 | 参数 | 类型 | 说明 | | ------- | ---- | -------------------------------- | | `value` | any | 任意类型数据 | | `n` | any | 可选参数,整数。具体参考返回说明 | 返回:bool ### `ifMatrix(value, n)` 判断value是否是一个Matrix类型。可通过可选参数N对数组中的行或元素进行判断。 | 参数 | 类型 | 说明 | | ------- | ---- | -------------------------------- | | `value` | any | 任意类型数据 | | `n` | any | 可选参数,整数。具体参考返回说明 | 返回:bool ### `ifObj(value, n)` 判断value是否是一个ComObj对象或者一个TSL的对象类型。可通过可选参数N对数组中的行或元素进行判断。 | 参数 | 类型 | 说明 | | ------- | ---- | -------------------------------- | | `value` | any | 任意类型数据 | | `n` | any | 可选参数,整数。具体参考返回说明 | 返回:bool ### `getOleObject(class_name, method, obj)` 获取一个ComObj对象类型。 | 参数 | 类型 | 说明 | | ------------ | ------ | ------------------------------------------------------------------------------------------------------------- | | `class_name` | string | 字符串,对象的类名。 | | `method` | any | 整数,产生方法的方法,1:获取一个存在的对象,2:新建一个对象,其他值:如果存在则获取一个存在对象,不存在则创建。 | | `obj` | object | 保存返回的对象。 | 返回:bool ## 数据类型转换函数 ### `importCsv(csv_str, data, include_index, include_header, single_arr)` 将指定csv格式字符串csvStr转换为数组,并存储在Data参数中。 支持范围:新一代TSL支持。 | 参数 | 类型 | 说明 | | ---------------- | ------ | ------------------------------------ | | `csv_str` | string | 字符串类型,csv格式字符串。 | | `data` | array | 数组类型,转换成功的数组(输出值)。 | | `include_index` | bool | object | | `include_header` | bool | object | | `single_arr` | bool | object | 返回:array ## 表达式相关函数 ### `arrayToFm(value, sample_value)` 将数组转换为 FMArray,并按样例值确定单元格类型。 | 参数 | 类型 | 说明 | | -------------- | ----- | ----------------------------------------------------------- | | `value` | array | 输入数组 | | `sample_value` | float | 单元格类型样例;如 `0` 生成整型单元格,`0.0` 生成浮点单元格 | 返回:array ### `importCsv(csv_text, out_data, has_header)` 将 CSV 字符串解析为数组。 | 参数 | 类型 | 说明 | | ------------ | ------ | ------------------------- | | `csv_text` | string | CSV 字符串 | | `out_data` | array | 输出数组(引用返回) | | `has_header` | any | 是否包含表头(可选,1/0) | 返回:array ### `stm(value)` 解析 STM 序列化数据。 | 参数 | 类型 | 说明 | | ------- | ------ | ------ | | `value` | string | binary | 返回:any ### `setGlobalCache(name, value)` 写入全局缓存。 | 参数 | 类型 | 说明 | | ------- | ------ | ------------ | | `name` | string | 缓存键 | | `value` | any | 写入缓存的值 | 返回:any ### `getGlobalCache(name, out_value)` 按键读取全局缓存。 | 参数 | 类型 | 说明 | | ----------- | ------ | -------------------- | | `name` | string | 缓存键 | | `out_value` | any | 输出变量,接收缓存值 | 返回:any