meta données pour cette page
Instructions de bases (ruby)
Shebang
Dans tous les scripts il y a une ligne en haut du document qui indique le type d'interpréteur qui doit être chargé au lancement du programme. Voici concernant Ruby :
#!/usr/bin/ruby -w
Avec le type d'encodage :
# -*- coding: utf-8 -*-
Entrées-sorties de base
- Saisir une donnée :
saisir = gets.chomp
- Afficher une donnée :
puts "Voici une variable #{saisir}"
- Récupérer une entrée envoyé à l'application :
saisir = ARGV[0]
- Tester les paramètres envoyé au programme
if ARGV.length > 0 then puts ARGV end
Manipuler les variables
- Les intervales
puts 1..10 puts 'a'..'z'
- Les tableaux :
# Déclaration : tab = [0 , 2 , -5, 15] # Ajoute un élément en fin de tableau : tab << 3 # Afficher un élement du tableau : puts tab[2] #=> -5
- Astuce pour les tableaux :
# Faire la somme d'un tableau : puts [1,2,3,4].reduce(:+) # Faire la multiplication d'un tableau : puts [1,2,3,4].reduce(:*)
- Tables associatives (Hash) :
#tab = Hash.new() tab = {'phil' => 'dosch', 'mickey' = > 'mouse'} puts tab['phil'] # => dosh #tab = {:phil' => 'dosch', :mickey' = > 'mouse'} #puts tab[:phil] # => dosh #Ajout d'une valeur: tab[:nouveau]="ajout"
- Les symboles :
Ce sont des identificateurs correspondant à une chaine de caractère prédédé de “:”.
:toto :"variable"
La particularité de cette technique réside sur sa réservation de son espace mémoire. Celle-ci en occupe qu'une seule. (Une forme de pointeur).
- Cas particuliers de l'affectation de paramètres :
a, b = 2, 7, 8, 1 #=> a = 2, b = 7 a, *b = 2, 7, 8, 1 #=> a = 2 , b = [7 , 8 , 1]
Dans certains cas, pas toutes les valeurs sont pris en compte.
Structure de contrôle
- Les conditions
x = true if x then puts "x est vraie ?" elsif x.is_s? then puts "x est chaine ?" else puts "x donc autre chose ?" end
- Le contraire de If :
unless a < 25 b = 0 else b = 1 end
- Semblable au switch
option = 3 case option when 1.5 then puts "Mon chois s'est porté entre 1 et 5" when "erreur": puts "Mon choix s'est porté sur une erreur" when /p \ s +(\ w +) / puts "Mon choix s'est porté sur une regex" else puts "Il se peut que je n'ai pas apporté de choix en fait ?" end
- While
while a > 5 puts a a -= 1 end
- Les itérateurs / for
# Avec un tableau for i in ['hello', 'bonjour', 'guten tag'] puts i, " " end # Avec une intervalle for i in 1..500 puts i," " end # Avec Times : 5.times do |i| next if i == 1 puts i end 3.times { puts "hello" } 1.upto(3) { |x| puts "hello : #{x} " } do i in [1,3,5,7,9] puts i end [1,3,5,7,9].each { [i| puts i }
Les fonctions
- Déclarer une fonction
def ma_fonction(arg, *tab) puts arg puts tab end ma_fonction(1) #> 1 #> [] ma_fonction(1,2,3,4) #> 1 #> [2,3,4]
Quelques opérateurs et méthodes
- Même type et de même valeur ?
1.eql?(1.0) #=> true ?
- Du même objet
chaine.equal?"une phrase"
- Tester si une variable est défini :
defined?chaine #=> nil ou local-variable