Aller au contenu

Programmation Ruby/Accesseurs

Un livre de Wikilivres.
Version datée du 16 avril 2020 à 09:34 par DannyS712 (discussion | contributions) (<source> -> <syntaxhighlight> (phab:T237267))
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Les accesseurs

[modifier | modifier le wikicode]

Un accesseur est une méthode d'accès à un attribut.

Il existe deux type d'accesseurs :

  • accesseurs en lecture (Get dans certains langages)
  • accesseurs en écriture (Set dans certains langages)

En Ruby c'est une méthode qui porte le nom de l'attribut en lecture et le nom de l'attribut suivit de '=' en écriture tel que :

Class TestClass(val)
  def initialize (val = "test")
    @val= val
  end

  #Ecriture
  def val=(val)
    @val = val
  end

  #Lecture
  def val
    @val
  end

end

titi = TestClass::new
p titi.val # => "test"
titi.val = "test2"
p titi.val # => "test2"

Ruby propose des macro-constructions d'accesseurs pour simplifier l'écriture des classes :

attr_reader :v            =>  def v; @v; end
attr_writer :v	            =>  def v=(value); @v=value; end
attr_accessor :v	    =>  attr_reader :v; attr_writer :v
attr_accessor :v, :w  =>  attr_accessor :v; attr_accessor :w