La notation de hachage a été introduite dans "Programming Ruby - The Pragmatic Programmer's Guide", publié pour la première fois en décembre 2000.
La "Préface" contient "Conventions de notation" :
Dans le texte, Fred#doIt
est une référence à une méthode d'instance ( doIt
) de class Fred
alors que Fred.new
[Dans d'autres documents Ruby, vous pouvez voir des méthodes de classe écrites comme suit Fred::new
. Il s'agit d'une syntaxe Ruby parfaitement valide ; nous pensons simplement que Fred.new
est moins gênant à lire.] est une méthode de classe, et Fred::EOF
est une constante de classe.
Ce point est clarifié dans la 2e édition, publiée en octobre 2004 :
Dans le texte, Fred#do_something
est une référence à une méthode d'instance (dans ce cas-ci do_something
) de class Fred
, Fred.new
est une méthode de classe, et Fred::EOF
est une constante de classe. La décision d'utiliser un caractère dièse pour indiquer les méthodes d'instance a été difficile à prendre : ce n'est pas une syntaxe Ruby valide, mais nous avons pensé qu'il était important de différencier les méthodes d'instance et de classe d'une classe particulière. Lorsque vous nous voyez écrire File.read
vous savez que nous parlons de la méthode de la classe. read
. Lorsqu'on écrit à la place File#read
nous faisons référence à la méthode d'instance read
.
Ruby lui-même utilise cette notation :
> rvm use 1.9.3
Using ruby-1.9.3-p551
> Object.instance_method(:initialize)
=> #<UnboundMethod: Object(BasicObject)#initialize>
Il a été introduit et formalisé par Matz en février 2002 :
commit 8210c254bee19294af67bcee0e8f5e02ebb39a60
Author: matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Tue Feb 5 07:56:31 2002 +0000
* io.c (fptr_finalize): should raise error when fclose fails.
* eval.c (method_inspect): proper output format to distinguish
methods and singleton methods.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
0 votes
De quand date-t-il ?
3 votes
Il a été utilisé pour la première fois dans la première édition de Programming Ruby, publiée en 2001 : ruby-doc.com/docs/ProgrammingRuby/html/preface.html#S10 - le choix de la notation a été expliqué plus clairement dans la 2e édition parue en 2005.