代码之家  ›  专栏  ›  技术社区  ›  Matthieu Raynaud de Fitte

通过参考或值的晶体过程变量

  •  6
  • Matthieu Raynaud de Fitte  · 技术社区  · 7 年前

    如何选择如何使用Crystal通过值或引用传递变量?

    示例:我希望通过引用而不是通过值传递结构(文档解释了它是通过值传递的,而类是通过引用传递的)。

    1 回复  |  直到 7 年前
        1
  •  8
  •   Vitalii Elenhaupt    7 年前

    你不能选择。你只需要记住物体是一个 Value 按值传递,其他对象按引用传递。

    Struct 价值 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