关键字 (2025-10-06)¶
fun main() {
println("Hello, World!"); // Error: `act println` cannot be called from a `fun` function
}
-
def定义纯函数def add(int a, int b) -> int { return a + b; }
-
fun定义逻辑纯函数fun do_something() { val x = malloc(64); free(x); }有时我们要让有副作用的函数被视为逻辑纯的,此时使用
unsafe关键字:unsafe fun do_something() { println("Effectful operation"); }
-
act定义副作用函数act main() { println("Hello, World!"); }
&Type引用&raw Type原始引用(需要手动释放)
// std::mem
unsafe fun alloc(usize size) -> &raw bytes;
unsafe fun free(&raw bytes ptr);
&raw from (ptr, len) // 从原始指针创建一个原始引用(切片)
承诺动作只被执行一次,常用于初始化:
once act init() {
println("This will only run once");
}
如果一个全局变量无法立刻初始化:
// 手动初始化
val GLOBAL = late Type;
// 第一次访问时初始化
val GLOBAL = lazy {
// initialization code
};
val GLOBAL = lazy Type {
// initialization code
};