| Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées | ||||||
![]() |
| Cet article fait partie de la série Langages de programmation |
| Langages orientés objet |
| Ada 95 - C++ - C# Common lisp object system Delphi - Eiffel - Java - Nice |
| Langages impératifs |
| APL - ASP Assembleur BASIC - C - Pascal Perl - PHP - Python |
| Langages fonctionnels |
| ML/OCaml
- Lisp/Common Lisp Forth - Logo - Scheme |
| Langages déclaratifs |
| Clips - Prolog |
| Voir aussi |
| Conception - Codage Tests - Optimisations |
Ruby est un langage interprété comparable à Perl et Python.
Yukihiro "Matz" Matsumoto a commencé l'écriture de ce langage en 1993 et a publié une première version en 1995. La syntaxe de Ruby est cohérente et conçue pour éviter autant que possible les mauvaises surprises. Le nom Ruby n'est pas un acronyme, mais un jeu de mot sur Perl.
| Sommaire |
L'interpréteur officiel a été porté sur de nombreux systèmes d'exploitation : Unix, Linux, Microsoft Windows, DOS, Mac OS X, OS/2, Amiga sous la double licence libre GNU GPL et la licence Ruby [1] . Il existe aussi un interpréteur moins utilisé en Java, JRuby [2] .
Une définition rapide de Ruby pourrait être "un mélange de Smalltalk (tout objet, notion de bloc, système de gestion d'exceptions ...) et de Perl (langage de script indépendant d'un IDE, expressions régulières natives ...)", ainsi on retrouve les fonctionnalités fortes de ces deux langages :
# tout est objet en Ruby, y compris les nombres et les chaînes de caractères :
-199.abs # 199
"Ruby est cool !".length # 15
"Ruby".index("b") # 2
"Bonjour tout le monde !".split(//).uniq.sort.join # " !Bdejlmnortu"
création et utilisation d'un tableau :
t = [ 1, 'salut', 3.14, 1, 2, [4, 5] ] t[2] # 3.14 t.reverse # [[4, 5], 2, 1, 3.14, "salut", 1] t[2..4] << [8,7].sort # [3.14, 1, 2, [7, 8]]
pareil pour une table de hashage:
h = {"L'eau" => 'mouille', 'Le feu' => 'brule'}
puts h['Le feu']
h.each_pair do |key, value|
puts "#{key}, ca #{value} !"
end
# Le feu, ca brule !
# L'eau, ca mouille !
h.delete_if { |k,v| k == 'Le feu' } # supprime l'association 'Le feu' => 'brule'
Un tableau avec les cubes des nombres de 1 à 10 :
(1..10).map { |x| x*x*x } # [1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
Un bloc qui affiche 10 fois bonjour :
10.times do puts "Bonjour !" end
Vous pouvez comparer cet exemple à son équivalent en Python.
class Fruit end
class Pomme < Fruit @@Mangeurs = %w[Jacques Nicolas] attr_reader :couleur # définit un attribut 'couleur' que l'on peut lire, mais pas modifier def initialize(couleur) super() @couleur = couleur end def comestible?(nom) if not @@Mangeurs.member?(nom) puts nom + " n'aime pas les pommes." else puts nom + " aime les pommes." end end end
petitePomme = Pomme.new('verte')
petitePomme.comestible? 'Pierre' # Pierre n'aime pas les pommes.
petitePomme.comestible? 'Nicolas # Nicolas aime les pommes.


