Menu
Coddy logo textTech

Aide-mémoire Ruby

Dernière mise à jour

Hello World et exécution du code

Ruby ne nécessite aucun code standard - une seule ligne s'exécute.

OpérationSyntaxe
Afficher avec saut de ligneputs "Hello, World!"
Afficher sans saut de ligneprint "Hello"
Inspecter une valeurp [1, 2, 3]
Interpolation de chaîneputs "Hi #{name}"
Commentaire# this is a comment
Commentaire multiligne=begin ... =end
Exécuter un fichierruby app.rb
Shell interactifirb

Variables et types

Ruby est typé dynamiquement ; tout est un objet.

OpérationSyntaxe
Variable localeage = 30
ConstantePI = 3.14
Variable d'instance@name = "Ada"
Variable globale$count = 0
Symbole:status
Nil / booléennil, true, false
Vérifier le type42.class renvoie Integer
Convertir un type"42".to_i, 42.to_s, "3.5".to_f

Chaînes

Les chaînes sont des objets mutables dotés d'un riche ensemble de méthodes.

OpérationSyntaxe
Longueur"hello".length
Majuscules / minusculess.upcase, s.downcase
Supprimer les espacess.strip
Remplacers.gsub("a", "b")
Découper en tableau"a,b,c".split(",")
Contient une sous-chaînes.include?("ell")
Extraire des caractèress[0..2]
Concaténer"foo" + "bar", s << "!"
Répéter"ab" * 3
Formaterformat("%05d", 42)

Tableaux

Collections ordonnées indexées par entiers.

OpérationSyntaxe
Créernums = [1, 2, 3]
Accès par indicenums[0], nums[-1]
Ajouter à la finnums.push(4), nums << 4
Retirer de la finnums.pop
Longueurnums.length
Mapnums.map { |n| n * 2 }
Filtrernums.select { |n| n.even? }
Réduirenums.reduce(0) { |sum, n| sum + n }
Triernums.sort
Joindre en chaînenums.join(", ")

Hashes

Collections clé-valeur, souvent indexées par des symboles.

OpérationSyntaxe
Créeruser = { name: "Ada", age: 30 }
Accéder à une valeuruser[:name]
Définir une valeuruser[:email] = "a@x.com"
Vérifier une cléuser.key?(:name)
Supprimer une cléuser.delete(:age)
Clés / valeursuser.keys, user.values
Itéreruser.each { |k, v| puts "#{k}: #{v}" }
Valeur par défautHash.new(0)
Fusionnerh1.merge(h2)

Contrôle de flux

Conditions et boucles ; remarquez les modificateurs en suffixe de Ruby.

OpérationSyntaxe
If / elsif / elseif x > 0 ... elsif x < 0 ... else ... end
If en ligne (modificateur)puts "hi" if ready
Unlessunless done ... end
Ternairex > 0 ? "pos" : "neg"
Case / whencase n; when 1 then ...; else ...; end
Boucle whilewhile i < 10 ... end
Boucle untiluntil done ... end
Times5.times { |i| puts i }
Itération sur une plage(1..5).each { |i| puts i }
Break / nextbreak, next

Méthodes

La dernière expression est renvoyée implicitement.

OpérationSyntaxe
Définir une méthodedef add(a, b) ... end
Retour implicitedef square(x) x * x end
Argument par défautdef greet(name = "World") ... end
Arguments nommésdef box(w:, h:) ... end
Splat (variadique)def sum(*nums) ... end
Méthode se terminant par ?def valid? ... end
Méthode se terminant par !def normalize! ... end
Appeler sans parenthèsesgreet "Ada"

Blocs, procs et lambdas

Les blocs sont des fragments de code passés aux méthodes ; les procs et les lambdas les stockent.

OpérationSyntaxe
Bloc (accolades)[1, 2].each { |n| puts n }
Bloc (do/end)[1, 2].each do |n| puts n end
Yield vers un blocdef run; yield; end
Vérifier la présence d'un blocblock_given?
Capturer le bloc en paramètredef run(&blk); blk.call; end
Créer un procsquare = proc { |x| x * x }
Créer un lambdasquare = ->(x) { x * x }
Appeler un proc / lambdasquare.call(3), square.(3)

Classes et modules

Les classes contiennent l'état et le comportement ; les modules injectent des méthodes partagées.

OpérationSyntaxe
Définir une classeclass Point ... end
Constructeurdef initialize(x, y) @x = x; @y = y; end
Méthode d'instancedef dist ... end
Raccourcis d'accesseurattr_accessor :x, :y
Créer une instancep = Point.new(1, 2)
Hériterclass Circle < Shape ... end
Méthode de classedef self.origin ... end
Définir un modulemodule Drawable ... end
Injecter un moduleinclude Drawable
Appeler supersuper(args)

La syntaxe Ruby que vous utilisez le plus, sur une seule page. Cet aide-mémoire Ruby est une référence rapide pour le cœur du langage - variables et types, chaînes, tableaux et hashes, contrôle de flux, méthodes, ainsi que les blocs, procs et lambdas qui rendent Ruby si expressif.

Tout ce qui figure ici est du Ruby pur et s'exécute sur n'importe quel interpréteur standard. Copiez ce dont vous avez besoin, ou essayez chaque extrait en direct dans le playground Ruby - aucune installation requise.

FAQ de l'aide-mémoire Ruby

Cet aide-mémoire Ruby est-il gratuit ?
Oui. Cet aide-mémoire Ruby est entièrement gratuit, sans inscription. Mettez-le en favori et revenez dès que vous devez retrouver une méthode de chaîne, une opération sur un hash ou une syntaxe de bloc.
Quelle est la différence entre un bloc, un proc et un lambda ?
Un bloc est un fragment de code anonyme passé à une méthode avec { ... } ou do ... end - ce n'est pas un objet à part entière. Un proc enveloppe un bloc dans un objet appelable que vous pouvez stocker et faire circuler. Un lambda est un proc spécial qui vérifie strictement son nombre d'arguments et traite return comme un retour du lambda lui-même, alors qu'un proc simple effectue un retour de la méthode englobante.
Que sont les symboles en Ruby ?
Un symbole comme :name est un identifiant immuable et réutilisable. Comme le même symbole pointe toujours vers le même objet en mémoire, les symboles sont plus rapides et plus économes en mémoire que les chaînes pour des usages comme les clés de hash et les noms de méthode - c'est pourquoi vous voyez souvent les hashes écrits sous la forme { name: "Ada" }.
Puis-je m'entraîner à Ruby en ligne ?
Oui. Ouvrez le playground Ruby pour exécuter n'importe quel extrait de cet aide-mémoire dans votre navigateur - aucune installation de Ruby nécessaire. Quand vous voulez de la structure, le cours Ruby interactif gratuit de Coddy vous emmène des variables et des chaînes jusqu'aux blocs et aux classes, étape par étape.
Cet aide-mémoire convient-il aux débutants ?
Oui. Il est organisé des sujets les plus courants (variables, chaînes, contrôle de flux) jusqu'aux plus avancés (blocs, procs, classes), pour que vous puissiez utiliser les premières sections dès le premier jour et progresser vers le reste.
Coddy programming languages illustration

Apprenez Ruby avec Coddy

COMMENCER