1.16 Map

Les maps KC3 ressemblent aux maps Elixir : ce sont des paires clé-valeur encadrées par %{}.

ikc3> a = %{id: 1, title: "My title", message: "Hello, world !"}
%{id: 1,
  title: "My title",
  message: "Hello, world !"}

La déstructuration fonctionne dans un Map pour extraire des valeurs. Toutes les clés n'ont pas besoin d'être présentes.

ikc3> %{id: id, title: "My title", message: message} = ^ a
%{id: 1,
  title: "My title",
  message: "Hello, world !"}
ikc3> id
1
ikc3> message
"Hello, world !"

Vous pouvez utiliser la syntaxe pointée pour accéder aux valeurs depuis une clé de type Sym.

ikc3> a.id
1
ikc3> a.message
"Hello, world !"

La syntaxe avec crochets permet d’interroger n’importe quel type de clé.

ikc3> a[:id]
1
ikc3> a[:message]
"Hello, world !"

Vous pouvez également utiliser la fonction KC3.access pour obtenir le même résultat.

ikc3> a = %{id: 1, title: "My title", message: "Hello, world !"}
%{id: 1,
  title: "My title",
  message: "Hello, world !"}
ikc3> access(a, [:id])
1
ikc3> access(a, [:message])
"Hello, world !"

Pour modifier un Map existant, vous pouvez utiliser Map.put comme ceci.

ikc3> a = %{id: 1, title: "My title"}
%{id: 1,
  title: "My title"}
ikc3> a = Map.put(a, :message, "Hello, world !")
%{id: 1,
  title: "My title",
  message: "Hello, world !"}

Top : Documentation KC3

Précédent : 1.15 Liste

Suivant : 1.17 Ptr