Le Programme
Le programme est un objet global dans lequel vous pouvez définir des types, méthodes et des variables locales au fichier.
# Définit une méthode dans le programme
def add(x, y)
x + y
end
# Invoque la méthode add dans le programme
add(1, 2) #=> 3
La valeur d'une méthode est la valeur de sa dernière expression, il n'y a pas besoin
d'utiliser explicitement de return
. Néanmoins, un return
explicite est possible:
def even?(num)
if num % 2 == 0
return true
end
return false
end
A l'invocation d'une méthode sans objet destinataire, comme add(1, 2)
,
elle sera recherchée dans le programme si elle ne peut être trouvée dans le type courant
ni aucun de ses parents.
def add(x, y)
x + y
end
class Foo
def bar
# invoque la méthode add du programme
add(1, 2)
# invoque la méthode baz de Foo
baz(1, 2)
end
def baz(x, y)
x * y
end
end
Si vous voulez invoquer la méthode du programme, même si le type courant définit une méthode avec le même nom,
préfixez l'appel avec un ::
:
def baz(x, y)
x + y
end
class Foo
def bar
baz(4, 2) #=> 2
::baz(4, 2) #=> 6
end
def baz(x, y)
x - y
end
end
Les variables déclarées dans un programme ne sont pas accessibles depuis les méthodes:
x = 1
def add(y)
x + y # error: undefined local variable or method 'x'
end
add(2)
Les parenthèses sont optionnelles dans les appels de méthode:
add 1, 2 # équivalent à add(1, 2)
Code principal
Le code principal, le code exécuté quand vous compilez et exécutez le programme, peut être écrit directement dans le fichier source sans avoir à l'inclure dans une méthode "main" spéciale:
# Un programme qui affiche "Hello Crystal!"
puts "Hello Crystal!"
Le code principal peut aussi être placé entre des déclarations:
# Un programme qui affiche "Hello Crystal!"
class Hello
# 'self' ici est la classe Hello class
puts self
end