jeudi, avril 28, 2005

attr_reader, attr_writer et attr_accessor

Comme me la fait remarquer Frederick Ros dans les commentaires de une classe simple, on aurait put utiliser un attr_writer au lieu de faire la methode remplaceBonjour. Ben c'est ce que nous allons faire ;)
class BonjourClasse

  attr_writer :bonjour
  
  def initialize
    @bonjour = "bonjour"
  end

  def ditBonjour
    return @bonjour
  end
  
end

classe = BonjourClasse.new
puts classe.ditBonjour
classe.bonjour="test"
puts classe.ditBonjour

Résultat:
C:\ruby\rubyscube>ruby bonjour_classe_attr.rb
bonjour
test

Si on remplace attr_writer :bonjour par attr_reader :bonjour, on obtient:
C:\ruby\rubyscube>ruby bonjour_classe_attr.rb
bonjour
bonjour_classe_attr.rb:17: undefined method `bonjour=' for # (NoMethodError)

Aucun commentaire: