Vermeiden Sie Instanzvariablen, verwenden Sie Getter und Setter

In Ruby können Sie Instanzvariablen wie folgt setzen und darauf zugreifen:

@bar = "bar"
@bar 

Aber das solltest du nicht. Sie sollten immer Getter- und Setter-Methoden wie folgt verwenden:

self.bar = "bar"
bar 

Dies liegt daran, dass Instanzvariablen niemals Fehler auslösen, sodass Ihnen dies passieren könnte:

@bar = "bar"
@barr 

@barr = "bar"
@bar 

Mit Gettern und Settern verschwenden Sie keine Zeit damit, Fehler aufzuspüren, die durch Rechtschreibfehler wie den obigen verursacht wurden:

self.barr = "bar" 
barr 

Sie müssen die Getter und Setter nicht einmal selbst schreiben, Sie können sie einfach verwenden attr_accessor (oder attr_writer oder attr_reader wenn Sie nur das eine oder das andere wollen).

Wenn Sie die Getter oder Setter nicht der Außenwelt aussetzen möchten, können Sie sie jederzeit privat machen:

class Foo
  def get_bar
    
    bar
  end

  def set_bar(value)
    
    self.bar = value
  end

  private

  attr_accessor :bar
end

foo = Foo.new


foo.bar = "bar" 
foo.bar 


foo.set_bar("foo")
foo.get_bar 

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *