内建函数
这一页只说明当前已经稳定的少量全局内建能力。
输出
print("hello")
println("hello")
eprint("error")
eprintln("error")
这些输出函数接受 any,主要用于调试和简单展示。
iter(...)
iter 同时是内建参数化类型名和内建构造形式。
let xs: list<int> = [1, 2, 3];
let out = iter(xs).map(func(x: int) -> string {
`#${x}`
}).collect();
当前稳定写法可按下面理解:
iter(xs: list<T>) -> iter<T>- 它把稳定容器转换成遍历管道起点
- 具体的
map / filter / collect方法见“复合类型”和“匿名函数”文档
panic
panic("something went wrong")
规则:
- 参数类型是
string - 调用后不会正常返回
- 常用于不可恢复的错误路径
assert
assert 目前保留为内建调试能力。
assert(x > 0)
assert(x > 0, some("x must be positive"))
当前用户侧可按以下方式理解:
- 第一个参数是
bool - 第二个参数如果提供,使用
opt<string>
说明
text / fragment / comment / element / main属于渲染内建,不在这一页重复说明int(x)、float(x)属于显式类型转换none、some(...)属于opt<T>的语言构造
更完整的设计背景见:
docs/01.design/18.built-in-functions.mddocs/01.design/15.render-intrinsics.md