ponylang - 是否可以修改函数参数?(如 C++ 中的 & )
问题描述
actor Test
fun foo(a: U32) =>
a = a + 1
我想test.foo(a)
修改a
. 这可能吗?谢谢
解决方案
您只能var
在类级别修改 s。这是故意的,因为参与者不喜欢就地更新——它真的不适合无锁并发。
默认情况下,函数具有该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())
推荐阅读
- bash - 查找我的 Git Bash 执行的 PATH
- javascript - 从浏览器上传 Google Drive API 和文件
- javascript - 如何在每个子对象之间插入 HTML 对象?
- python - python笔记本中的Nltk Word Tokenizer
- excel - Cells() 属性如何接受十进制值?
- wpf - WPF Listview 滚动条可见性触发器
- javascript - 检查某些文本之后是什么文本
- ssis - 将 rowcount int 变量写入 txt 文件
- android - 谷歌地理编码器的纬度和经度不适用于位智
- arrays - 如何找到分布在二维坐标系中的以下城市的中心交汇点?