Bi

Binaries in Elixir

7 esercizi

Informazioni su Binaries

  • Il tipo binario è una specializzazione del tipo bitstring.
  • I binari sono composti da byte.
    • I byte sono 8 bit.
    • I byte possono rappresentare numeri da 0 a 255
    • I valori interi esadecimali sono comuni quando si lavora con i byte: da 0x00 a 0xFF.
  • I letterali binari si definiscono usando la forma speciale <<>>.
  • <>/2 può essere usato per concatenare bitstring, binari e stringhe.
<<255>> == <<0xFF>>
# Overflowing bits are truncated
<<256>> == <<0>>
<<256::size(16)>> == <<1, 0>>

<<"Hello">> == <<72, 101, 108, 108, 111>>

Un «byte nullo» è un altro nome per <<0>>.

Le stringhe sono dati binari codificati

  • Le stringhe sono dati binari codificati in formato UTF-8.
# This string has a string length of 5, but is made up of 7 bytes
string = "cześć"
String.length(string) != byte_size(string)

# Even emoji strings are encoded binaries
"👍" == <<240, 159, 145, 141>>

Il pattern matching sui dati binari

  • Si può fare pattern matching su un binario nel suo insieme, oppure usare la forma speciale per far combaciare una sola parte.
    • Solo l'ultima parte di un pattern match può avere dimensione variabile.
# Ignore the first 8 bytes, bind the remaining variable sized binary to `body`
<<_::binary-size(8), body::binary>>

Lo stesso si può fare con le stringhe:

# bind the first 5 bytes to `name`,
# match the string literal " the ",
# bind remaining bytes to `species`
<<name::binary-size(5), " the ", species::binary>> = <<"Frank the Walrus">>
{name, species}
# => {"Frank", "Walrus"}
Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Binaries

La pratica è bloccata

Sblocca un altro esercizio per esercitarti su Binaries