Ricerca…


Sintassi

  • [testa | tail] = [1, 2, 3, true] # uno può utilizzare la corrispondenza del modello per suddividere le celle. Assegna head a 1 e tail a [2, 3, true]

  • % {d: val} =% {d: 1, e: true} # assegna val a 1; nessuna variabile d viene creata perché la d su lhs è in realtà solo un simbolo che viene utilizzato per creare il pattern% {: d => _} (nota che la notazione a razzo hash consente di avere simboli non come chiavi per le mappe come in rubino)

Osservazioni

Per quanto riguarda la struttura dei dati per noi qui ci sono alcune brevi osservazioni.

Se hai bisogno di una struttura dati dell'array se stai scrivendo molte liste di uso. Se invece farai molta lettura dovresti usare le tuple.

Per quanto riguarda le mappe, sono semplicemente come si fanno i negozi di valore chiave.

elenchi

a = [1, 2, 3, true]

Si noti che questi sono memorizzati in memoria come elenchi collegati. Questa è una serie di celle contro cui la testa (List.hd / 1) è il valore del primo elemento dell'elenco e la coda (List.tail / 1) è il valore del resto dell'elenco.

List.hd(a) = 1
List.tl(a) = [2, 3, true]

Le tuple

b = {:ok, 1, 2}

Le tuple sono l'equivalente di matrici in altre lingue. Sono memorizzati in modo contiguo nella memoria.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow