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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow