shi*_*mar 7 elixir elixir-framework
换句话说,我想知道在elixir中是否通过值或引用将映射传递给函数.我怀疑Elixir没有副作用的原则是值得的.但是,大型地图不会造成巨大的重复效率低下吗?
在此先感谢您的帮助.
由于Elixir中的所有术语都是不可变的,因此用户是否通过"按值"或"按引用"传递参数没有区别.您永远不能修改函数中术语的值,并将其反映在调用者发送给函数的变量中.具体地说,可以认为地图是"通过引用"传递的,因为只有指向它们的指针被VM发送到该功能,这是非常有效的.
需要注意的一点是,传递给其他进程的术语会被VM深度复制.唯一的例外是"大"字符串,通常> 64字节,它们作为对全局二进制堆的引用传递,并使用引用计数进行垃圾收集.
我怀疑Elixir没有副作用的原则是值得的.
Elixir不纯净,它有副作用.例如,您可以将I/O添加到任何功能.你可能意味着没有可变的值.
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |