Elixir Language
Ingebouwde types
Zoeken…
Numbers
Elixir wordt geleverd met gehele getallen en getallen met drijvende komma . Een geheel getal letterlijk kan worden geschreven in decimale, binaire, octale en hexadecimale formaten.
iex> x = 291
291
iex> x = 0b100100011
291
iex> x = 0o443
291
iex> x = 0x123
291
Omdat Elixir bignum-rekenkunde gebruikt, wordt het bereik van gehele getallen alleen beperkt door het beschikbare geheugen op het systeem .
Drijvende-kommagetallen zijn dubbele precisie en volgen de IEEE-754-specificatie.
iex> x = 6.8
6.8
iex> x = 1.23e-11
1.23e-11
Merk op dat Elixir ook een exponentvorm voor drijvers ondersteunt.
iex> 1 + 1
2
iex> 1.0 + 1.0
2.0
Eerst hebben we twee gehele getallen toegevoegd en het resultaat is een geheel getal. Later hebben we twee drijvende-kommagetallen toegevoegd en het resultaat is een drijvende-kommagetal.
Delen door Elixir retourneert altijd een drijvende-kommagetal:
iex> 10 / 2
5.0
Op dezelfde manier, als u een geheel getal optelt, aftrekt of vermenigvuldigt met een getal met drijvende komma, is het resultaat een drijvende komma:
iex> 40.0 + 2
42.0
iex> 10 - 5.0
5.0
iex> 3 * 3.0
9.0
Voor gehele getallen kan men de div/2
functie gebruiken:
iex> div(10, 2)
5
atomen
Atomen zijn constanten die een naam van iets vertegenwoordigen. De waarde van een atoom is zijn naam. Een atoomnaam begint met een dubbele punt.
:atom # that's how we define an atom
De naam van een atoom is uniek. Twee atomen met dezelfde namen zijn altijd gelijk.
iex(1)> a = :atom
:atom
iex(2)> b = :atom
:atom
iex(3)> a == b
true
iex(4)> a === b
true
Booleërs true
en false
, zijn eigenlijk atomen.
iex(1)> true == :true
true
iex(2)> true === :true
true
Atomen worden opgeslagen in speciale atomen-tabel. Het is heel belangrijk om te weten dat deze tafel niet door afval wordt ingezameld. Dus, als je wilt (of per ongeluk een feit is) maak constant atomen - het is een slecht idee.
Binaries en bitstrings
Binaries in elixer worden gemaakt met behulp van het Kernel.SpecialForms-construct << >> .
Ze zijn een krachtig hulpmiddel dat Elixir zeer nuttig maakt voor het werken met binaire protocollen en coderingen.
Binaries en bitstrings worden gespecificeerd met behulp van een door komma's gescheiden lijst van gehele getallen of variabele waarden, geboekt door "<<" en ">>". Ze zijn samengesteld uit 'eenheden', een groep bits of een groep bytes. De standaardgroepering is een enkele byte (8 bits), opgegeven met een geheel getal:
<<222,173,190, 239>> # 0xDEADBEEF
Elixer-strings worden ook direct geconverteerd naar binaries:
iex> <<0, "foo">>
<<0, 102, 111, 111>>
U kunt "specifiers" toevoegen aan elk "segment" van een binair getal, zodat u kunt coderen:
- Data type
- Grootte
- endianness
Deze specificaties worden gecodeerd door elke waarde of variabele te volgen met de operator "::":
<<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
De beschikbare gegevenstypen die u kunt gebruiken zijn:
- geheel getal
- vlotter
- bits (alias voor bitstring)
- bitstring
- binair
- bytes (alias voor binair)
- utf8
- UTF16
- utf32
Houd er rekening mee dat wanneer u de 'grootte' van het binaire segment opgeeft, deze varieert volgens het 'type' dat is gekozen in de segmentspecificatie:
- geheel getal (standaard) 1 bit
- 1 bit drijven
- binaire 8 bits