Ruby sur l'ongle, on rails plutôt
Je découvre le langage Ruby sans avoir lu sa « présentation » .. je ne sais donc à priori pas à quoi m'attendre. Je sais simplement que c'est un langage interprêté où tout est objet.
Voyons voir ...
Les entiers sont des objets
Première découverte, les entiers sont (aussi) considérés comme des objets. D'accord ! Ce qui a pour effet que je peux leur appliquer des méthodes ^^1. Pour exécuter 10 fois quelque chose, il me suffit donc d'écrire
10.times do
print "Hello"
end
Les "bang!" et les "huh!"
Par convention, certains noms de méthodes se terminent par ! qui se lit bang. Il signale que l'objet sur lequel porte la méthode risque d'être détruit ou modifié. Exemple
s = "Séduisante"
s.chop!
print s # Ecrira "Séduisant"
De manière similaire, une méthode se terminant pas ? qui se lit huh (hein), informe qu'elle retourne une valeur booléenne.
Méthode singleton
Ruby propose les méthodes singleton ce sont des méthodes redéfinies pour une instance de classe (un objet). Une méthode foo
est écrite pour tous les objets de la classe C
et l'instance particulière c1
de la classe C
peut
réécrire la méthode foo.
Ça donne une truc du style
class C
def foo
print "Je dis foo"
end
end
print "Création d'un instance de C, c1", c1=C.new , ""
print "c1: "
c1.foo
print "Création d'un instance de C, c2", c2=C.new , ""
print "Réécriture de la méthode foo, voir code"
def c2.foo
print "Je ne dis PLUS foo"
end
print "c2: "
c2.foo
Méthode, module et procédure
Ruby distingue trois notions,
- Une méthode, est un morceau de code que l'on exécute sur un objet (une instance de classe).
- Un module, est une classe que l'on ne peut pas instancier (une classe abstraite) et qui ne peut pas être héritée. C'est la notion Java de classe abstraite. Un module va fournir des fonctions et des constantes (le module Math par exemple).
- Une procédure, permet de nommer une bloc de code ... afin de pouvoir l'exécuter, le passer en argument à une fonction, ...
J'ai encore plein de trucs à découvrir mais jusque là, ça m'excite très fort ... je reviens ici dès que j'ai réussi à faire fonctionner RADRails convenablement. Pour l'instant, j'ai suivi un tutoriel qui semble bien fait ... mais je n'arrive pas à afficher le résultat que je devrais obtenir ... Grr.
J'y retourne de ce pas.
Crédit photo chez 500px par Ruby Cardinal
-
Ceci est un haussement de sourcils ↩