Échange de données 1

1.2- Syntaxe

1.3- Syntaxe, suite

1.4- Exercices

Tableaux

#
## 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

#
## 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)

Go!

Une chaîne de caractères

👀 RTFM

Sortie
Votre texte: Je m'appelle James!

'Je m'appelle James!' contient
19 caractères et 3 mots