Ruby: Wie soll ich auf Instanzvariablen innerhalb einer Klasse zugreifen?

In Ruby können Sie intern direkt über @ auf Variablen zugreif@var_name oder über private Getterattr_reader :var_name.

Welche Lösung ist mehr (semantisch?) richtig? Vor- und Nachteile der Verwendung von Lösung 1 oder Lösung 2?

Lösung 1:

class Point
 def initialize(x, y)
   @x = x
   @y = y
 end

 def distance
   Math.sqrt(@x ** 2 + @y ** 2)
 end
end

Lösung 2:

class Point
  def initialize(x, y)
   @x = x
   @y = y
  end

  def distance
    Math.sqrt(x ** 2 + y ** 2)
  end

private 
  attr_reader :x, :y

end

Antworten auf die Frage(4)

Ihre Antwort auf die Frage