#
## Tableaux
#
tableau = []
tableau = ["james", "mathieu", "lyne", "nicolas"]
tableau = [true, "poutine", 42, [34, 89]]
p tableau
# p est une methode d'affichage pour deboguer,
# affiche le resultat de la methode inspect plutot que la methode to_s
# pratique pour les types structurés et les objets
tableau_2d = [
[],
[]
]
tableau[0] # Pour acceder et assigner = la valeur
tableau.first # .last
tableau[0..3] # Les Range fonctionnent aussi, donne les items 0, 1, 2, 3
# En plus des operations de suppression, insertion, tri, etc.
# https://docs.ruby-lang.org/en/3.0/Array.html
# Parcourir
for color in ["red", "green", "blue"]
print(color.capitalize, " ")
end
# On peut exploiter les Blocks pour manipuler les tableaux
["red", "green", "blue"].each do |color|
print(color.capitalize, " ")
end
# Et combiner les operations
["red", "green", "blue"].select do |color|
!color.include?("r")
end
.each do |color|
print(color.capitalize, " ")
end
# Il existe une syntaxe alternative pour les blocks
# particulierement utilisee si une seule operation est effectuee
["red", "green", "blue"]
.select {|color| !color.include?("r")}
.each {|color| print(color.capitalize, " ")}
#
## Table de hachage
#
# Permets d'associer une valeur a une cle pour l'identifier
# https://docs.ruby-lang.org/en/3.1/Hash.html
# On peut utiliser une combinaison variee de type pour les cles ET les valeurs
value = "something"
h = {
"key" => value,
2 => "une string",
:id => 7,
Object.new => true,
}
# Il existe une notation simplifiée pour utilisé des Symbol comme clé
{symbol: ""}
# equivaut a
{:symbol => ""}
# On peut ajouter une valeur
h[:new_key] = "James"
#
# Recuperer des données
#
# Un item
h["key"] # "something"
# retourne nil si le cle n'existe pas
h.fetch("other", "some default")
# Et assigner une nouvelle valeur
h["key"] = "something else"
# Toutes les cles/valeurs
# Il existe des raccourcis via .each, .each_key, .each_... pour parcourir avec un Block
h.keys
h.values
# Verifier l'existance
h.key?("patate")
h.value?(42)
👀 RTFM
Votre texte: Je m'appelle James!
'Je m'appelle James!' contient
19 caractères et 3 mots