actor Test
fun foo(a: U32) =>
a = a + 1
我要test.foo(a)
修改a
。这可能吗?谢谢
您只能var
在类级别修改。这是有意的,因为参与者不喜欢就地更新-确实与无锁并发配合得不好。
默认情况下,函数具有此box
功能,这意味着该函数操作的数据是只读的。为了确保函数可以对数据进行突变,需要声明该方法fun ref
。
actor Main
var i: U32 = 0
fun ref foo() =>
i = i + 1
new create(env: Env) =>
env.out.print(i.string())
foo()
env.out.print(i.string())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句