来自 Julia 的文档:
Julia function arguments follow a convention sometimes called “pass-by-sharing”...
!
对吗?在函数末尾只是一个约定,但在编译中没有任何语义意义? copy()
,但得到的错误是 copy()
没有为我的自定义类型定义。我想我需要扩展 copy()
对于我的自定义类型。我在哪里可以找到 copy()
的定义对于其他类型(希望在编写扩展时将它们用作引用)? 最佳答案
简短的回答是 是 .但是请记住:“更改对象”是一个宽泛的概念,是否为它分配了新的内存位置?如果你在函数作用域内重新分配一个局部变量,肯定会切断与调用者的共享字符串。 --> read more about mutation and assignment
那是因为一个不可变的不是可变的,所以改变它的唯一方法是分配一个新的内存位置,这样共享字符串将被切断。
你是对的。
使用
deepcopy()
反而。
关于object - Julia 参数传递行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34607967/