系统函数
系统函数
功能
系统函数是 BT 运行时的全局基础能力,覆盖环境自省、动态调用、类型转换、JSON 序列化、正则、路径、休眠、随机数和标准库构造入口。
API 列表
| API | 说明 |
|---|---|
| envs | 读取系统环境对象,或按名称读取系统函数、标准库构造函数、系统常量。 |
| env | 读取用户全局环境对象,或按名称读取用户全局变量。 |
| has_envs | 判断系统环境中是否存在指定名称。 |
| has_env | 判断用户全局环境中是否存在指定变量。 |
| pause | 向控制台输出可选提示并等待用户按回车。 |
| assert | 断言条件成立,失败时抛出运行时错误。 |
| echo | 把所有参数转为字符串,用空格连接后输出到控制台。 |
| bool | 把值按 BT 真值规则转换为布尔值。 |
| eval | 编译并执行字符串脚本,返回脚本显式 return 或 exit 的值。 |
| exit | 设置退出值并结束当前脚本执行。 |
| include | 运行期引入并执行 BT 文件,返回被引入文件显式 return 或 exit 的值。 |
| include_once | 运行期引入并执行 BT 文件,同一执行上下文内同一真实文件只执行一次。 |
| cur_dir | 返回当前源码文件所在目录。 |
| cur_file | 返回当前源码文件路径。 |
| cur_root | 返回当前 VM 项目根目录。 |
| type | 返回值的脚本可见类型名。 |
| call | 按函数名或函数值动态调用函数。 |
| task | 创建轻量后台任务,并通过 await、done、result、on_done 读取状态和结果。 |
| task_all | 等待一组 Task 全部完成,并按输入顺序返回成功结果数组。 |
| task_race | 等待一组 Task 中最先完成的任务,并返回它的结果。 |
| set_timeout | 注册一次性延迟回调,并立即返回 Timer 对象。 |
| set_interval | 注册固定延迟重复回调,并立即返回 Timer 对象。 |
| Timer.cancel | 取消尚未触发的 timeout 或后续 interval。 |
| number | 把值转换为数字。 |
| string | 把值转换为字符串。 |
| float | 把值转换为浮点数。 |
| int | 把值转换为整数。 |
| array | 把值转换为数组。 |
| object | 把值转换为对象。 |
| json | 把值序列化为标准 JSON 字符串。 |
| regex | 编译正则表达式并返回 Regex 对象。 |
| is_empty | 判断值是否为空。 |
| is_null | 判断值是否为 Null。 |
| sleep | 让当前线程休眠指定毫秒数。 |
| rand | 生成伪随机数。 |
示例
result = type(json({name: 'BT'})) // 输出:String print result
注意事项
- 系统函数无状态;对象型标准库入口如 fs、html、crypto、url、path、bytes、mysql、modbus、reqwest 由 VM 的库构造分支创建。
-
print和println是语言输出语句,不是可通过call()动态调用的系统函数;它们的用法见 输出。 -
echo是系统函数,支持echo(value)和单参数无括号语法。