66 votes

Pourquoi les méthodes dans la documentation Ruby sont-elles précédées d'un signe dièse ?

Lorsque je vois une méthode Ruby imprimée dans un texte, elle apparaît généralement sous la forme suivante :

Class#method

o

#method

Maintenant, j'utiliserais :

Class.method

Pourquoi toutes les méthodes Ruby sont-elles précédées d'un signe dièse ? Y a-t-il une raison à cela ?

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.

7voto

Toutes les réponses que vous avez énumérées ci-dessus sont correctes. La seule chose que j'ajouterais est que le style de documentation que vous avez dit préférer

Méthode.de.classe

serait facilement confondu avec les méthodes de classe. Puisque vous pouvez appeler des méthodes de classe en ruby en utilisant la syntaxe ci-dessus :

class Foo
  def self.say_hi
    puts "hi"
  end
end

Foo.say_hi    # => prints "hi"

4voto

heff Points 1789

Cela a été mentionné dans le Version JS de cette question mais il est probable que cette nomenclature provient de JavaDoc où la marque de hachage est traduite directement en une référence sur la page, par ex. href="Component.html#getComponentAt(int, int)"

1voto

Rainer Blome Points 15

La réponse de Heff (que je ne peux pas commenter en raison de son manque de réputation), à savoir que Ruby a suivi l'exemple de JavaDoc, est à mon avis la meilleure hypothèse. Les concepteurs de JavaDoc avaient besoin ou voulaient un moyen de distinguer les qualificatifs de package (pour lesquels ils utilisaient le point) des qualificatifs de classe (pour lesquels ils utilisaient le dièse). La syntaxe des balises @see et @link de JavaDoc ressemble à ceci :

@see   package.class#member [optional label]
{@link package.class#member [optional label]}

Voir la documentation de Variante package.class de la balise @see de JavaDoc et la documentation de la balise @link de JavaDoc, que heff a déjà signalée.

Dans JavaDoc, le nom du paquetage peut souvent être omis, de sorte que seule la partie Class#member reste, ce qui semble tout aussi étrange qu'en Ruby, car le code Java utilise la syntaxe Class.member, tout comme Ruby.

Il serait intéressant de savoir pourquoi les concepteurs de JavaDoc avaient besoin d'une syntaxe différente, alors que le compilateur Java se contente de points pour les deux usages.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X