Sök…


Syntax

  • [huvud | tail] = [1, 2, 3, true] # en kan använda mönstermatchning för att bryta upp nackceller. Detta tilldelar huvud till 1 och svans till [2, 3, sant]

  • % {d: val} =% {d: 1, e: true} # detta tilldelar val till 1; ingen variabel d skapas eftersom d på lhs egentligen bara är en symbol som används för att skapa mönstret% {: d => _} (Observera att hash raketnotation gör att man kan ha icke-symboler som nycklar för kartor precis som i rubin)

Anmärkningar

När det gäller vilken datastruktur för oss här är några korta kommentarer.

Om du behöver en uppsättning av datastrukturer om du kommer att göra många skrivlistor. Om du istället ska läsa mycket bör du använda tuples.

När det gäller kartor är de helt enkelt hur du lagrar nyckelvärden.

listor

a = [1, 2, 3, true]

Observera att dessa lagras i minnet som länkade listor. Id est detta är en serie av nackceller där huvudet (List.hd / 1) är värdet på det första objektet i listan och svansen (List.tail / 1) är värdet på resten av listan.

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

tupler

b = {:ok, 1, 2}

Tuples motsvarar matriser på andra språk. De lagras sammanhängande i minnet.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow