晶体通过参考或值变量
答
你不能选择。你只需要记住这个对象是一个Value
传递的值,其他对象通过引用传递。
Struct
是一个Value
并通过值。您应该更喜欢使用不可变数据类型的结构。然而,可变结构仍然允许在Crystal中,并且实际上this example演示了如何使用方法对其进行变异。总之:
struct Mutable
property value
def initialize(@value : Int32)
end
end
def change(mutable)
mutable.value = 2
mutable
end
mut = Mutable.new 1
mut = change(mut)
mut.value # => 2
使用指针绑定外或特殊性能优化当然不是最佳实践。 –
@JonneHaß谢谢,您的评论以粗体显示给答案 –
这不仅仅是坏习惯,而且实际上是不安全的代码! –