Je termine le Rubyist Well Grounded et j'ai remarqué des appels de variable d'instance que je ne comprends pas très bien. Droit de TWGR (Section 15.2.2):Ruby Instance Variable Syntaxe
class Person
attr_reader :name
def name=(name)
@name = name
normalize_name
end
private
def normalize_name
name.gsub!(/[^-a-z'.\s]/i, "")
end
end
est la variable name
dans la méthode normalize_name une variable d'instance implicite? Est-ce que @name.gsub!(/[^-a-z'.\s]/i, "")
aurait fonctionné aussi bien? Y a-t-il une convention dont je devrais être au courant?
La référence à la variable '@ name' directement au lieu de la méthode' name' aurait-elle fonctionné? Y at-il un avantage à utiliser la méthode 'name'? – rringler
Yup. Ils font la même chose de base, mais il est plus sûr d'utiliser le getter - et si plus tard sur la ligne vous décidez de modifier les données en lecture au lieu d'écrire? – coreyward
J'ai compris. Merci de votre aide! – rringler