Elixir Language
Data structuren
Zoeken…
Syntaxis
[hoofd | tail] = [1, 2, 3, true] # one kan patroonmatching gebruiken om nadelen te splitsen. Dit wijst kop toe aan 1 en staart aan [2, 3, waar]
% {d: val} =% {d: 1, e: true} # dit wijst val toe aan 1; er wordt geen variabele d gemaakt omdat de d op de lhs eigenlijk gewoon een symbool is dat wordt gebruikt om het patroon% {: d => _} te maken (merk op dat hash-raketnotatie het mogelijk maakt om niet-symbolen als sleutels voor kaarten te hebben, net als in robijn)
Opmerkingen
Wat betreft de datastructuur voor ons hier enkele korte opmerkingen.
Als je een array datastructuur nodig hebt als je veel gaat schrijven, gebruik dan lijsten. Als je in plaats daarvan veel gaat lezen, moet je tupels gebruiken.
Wat kaarten betreft, ze zijn gewoonweg hoe u sleutelwaardewinkels doet.
lijsten
a = [1, 2, 3, true]
Merk op dat deze als gekoppelde lijsten in het geheugen worden opgeslagen. Dit is een reeks nadelencellen waarbij de kop (List.hd / 1) de waarde van het eerste item van de lijst is en de staart (List.tail / 1) de waarde van de rest van de lijst.
List.hd(a) = 1
List.tl(a) = [2, 3, true]
tuples
b = {:ok, 1, 2}
Tuples zijn het equivalent van arrays in andere talen. Ze worden aaneengesloten opgeslagen in het geheugen.