Ruby Language introduction


Exemple

Ruby a trois types d'objets:

  • Classes et modules qui sont des instances de classe Class ou class Module.
  • Instances de classes.
  • Classes Singleton.

Chaque objet a une classe qui contient ses méthodes:

class Example
end

object = Example.new

object.class  # => Example
Example.class # => Class
Class.class   # => Class

Les objets eux-mêmes ne peuvent pas contenir de méthodes, seule leur classe le peut. Mais avec les classes singleton, il est possible d'ajouter des méthodes à n'importe quel objet, y compris d'autres classes singleton.

def object.foo
  :foo
end
object.foo #=> :foo

foo est défini sur la classe singleton de l' object . Autres Example exemples ne peuvent pas répondre à foo .

Ruby crée des classes singleton à la demande. Leur accès ou leur ajout de méthodes force Ruby à les créer.