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