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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow