Elixir Language
Eingebaute Typen
Suche…
Zahlen
Elixir kommt mit Ganzzahlen und Fließkommazahlen . Ein Integer-Literal kann in Dezimal-, Binär-, Oktal- und Hexadezimalformaten geschrieben werden.
iex> x = 291
291
iex> x = 0b100100011
291
iex> x = 0o443
291
iex> x = 0x123
291
Da Elixir Bignum-Arithmetik verwendet, ist der Bereich der Ganzzahl nur durch den verfügbaren Speicher des Systems begrenzt .
Fließkommazahlen haben eine doppelte Genauigkeit und entsprechen der IEEE-754-Spezifikation.
iex> x = 6.8
6.8
iex> x = 1.23e-11
1.23e-11
Beachten Sie, dass Elixir auch Exponentenform für Floats unterstützt.
iex> 1 + 1
2
iex> 1.0 + 1.0
2.0
Zuerst haben wir zwei Ganzzahlen hinzugefügt und das Ergebnis ist eine Ganzzahl. Später haben wir zwei Fließkommazahlen hinzugefügt, und das Ergebnis ist eine Fließkommazahl.
Bei der Division in Elixir wird immer eine Fließkommazahl zurückgegeben:
iex> 10 / 2
5.0
Wenn Sie eine Ganzzahl mit einer Gleitkommazahl addieren, subtrahieren oder multiplizieren, wird das Ergebnis auf die gleiche Weise Fließkomma:
iex> 40.0 + 2
42.0
iex> 10 - 5.0
5.0
iex> 3 * 3.0
9.0
Für die Ganzzahlteilung kann man die div/2
Funktion verwenden:
iex> div(10, 2)
5
Atome
Atome sind Konstanten, die einen Namen für etwas darstellen. Der Wert eines Atoms ist sein Name. Ein Atomname beginnt mit einem Doppelpunkt.
:atom # that's how we define an atom
Der Name eines Atoms ist einzigartig. Zwei gleichnamige Atome sind immer gleich.
iex(1)> a = :atom
:atom
iex(2)> b = :atom
:atom
iex(3)> a == b
true
iex(4)> a === b
true
Boolean ist true
und false
, eigentlich sind Atome.
iex(1)> true == :true
true
iex(2)> true === :true
true
Atome werden in der Tabelle der speziellen Atome gespeichert. Es ist sehr wichtig zu wissen, dass dieser Tisch nicht mit Müll gesammelt wird. Wenn Sie also ständig Atome erzeugen wollen (oder aus Versehen eine Tatsache sind), ist dies eine schlechte Idee.
Binaries und Bitstrings
Binaries in Elixir werden mit dem Kernel.SpecialForms-Konstrukt << >> erstellt .
Sie sind ein leistungsfähiges Werkzeug, das Elixir sehr nützlich für die Arbeit mit binären Protokollen und Kodierungen macht.
Binaries und Bitstrings werden durch eine durch Kommas getrennte Liste von Ganzzahlen oder Variablenwerten angegeben, die durch "<<" und ">>" ergänzt werden. Sie bestehen aus "Einheiten", entweder einer Bit-Gruppe oder einer Byte-Gruppe. Die Standardgruppierung ist ein einzelnes Byte (8 Bit), das mit einer Ganzzahl angegeben wird:
<<222,173,190, 239>> # 0xDEADBEEF
Elixir-Strings werden auch direkt in Binärdateien konvertiert:
iex> <<0, "foo">>
<<0, 102, 111, 111>>
Sie können jedem "Segment" einer Binärdatei "Spezifizierer" hinzufügen, sodass Sie Folgendes kodieren können:
- Datentyp
- Größe
- Endianness
Diese Bezeichner werden durch Folgen jedes Werts oder jeder Variablen mit dem Operator "::" codiert:
<<102::integer-native>>
<<102::native-integer>> # Same as above
<<102::unsigned-big-integer>>
<<102::unsigned-big-integer-size(8)>>
<<102::unsigned-big-integer-8>> # Same as above
<<102::8-integer-big-unsigned>>
<<-102::signed-little-float-64>> # -102 as a little-endian Float64
<<-102::native-little-float-64>> # -102 as a Float64 for the current machine
Die verfügbaren Datentypen, die Sie verwenden können, sind:
- ganze Zahl
- schweben
- Bits (Alias für Bitstring)
- Bitstring
- binär
- Bytes (Alias für binär)
- utf8
- utf16
- utf32
Beachten Sie, dass die Angabe der 'Größe' des binären Segments je nach dem im Segmentbezeichner ausgewählten 'Typ' variiert:
- Ganzzahl (Standard) 1 Bit
- Float 1 Bit
- binär 8 Bit