bytesDesde: 0.7.0
Una secuencia de bytes.
Conceptualmente es similar a un array de enteros entre 0 y 255, pero se representa de forma mucho más eficiente. Podés iterar sobre ella con un bucle for.
Podés convertir
- una cadena de texto o un array de enteros en bytes con el constructor de
bytes - bytes en una cadena de texto con el constructor de
str, con codificación UTF-8 - bytes en un array de enteros con el constructor de
array
Al leer datos de un archivo, podés decidir si cargarlos como cadena de texto o como bytes sin procesar.
#bytes((123, 160, 22, 0)) \
#bytes("Hello 😃")
#let data = read(
"rhino.png",
encoding: none,
)
// Magic bytes.
#array(data.slice(0, 4)) \
#str(data.slice(1, 4))

Constructor
Convierte un valor en bytes.
- Las cadenas de texto se codifican en UTF-8.
- Los arrays de enteros entre
0y255se convierten directamente. La representación dedicada de bytes es mucho más eficiente que la de array y, por eso, se suele usar para buffers de bytes grandes (por ejemplo, datos de imágenes).
Ver ejemplo
#bytes("Hello 😃") \
#bytes((123, 160, 22, 0))

value
El valor que se debe convertir en bytes.
Funciones
lenDesde: 0.7.0
La longitud en bytes.
atDesde: 0.7.0
Devuelve el byte del índice especificado. Devuelve el valor por defecto si el índice está fuera de rango, o falla con un error si no se especificó ningún valor por defecto.
index
El índice del byte que se quiere obtener.
defaultany
Un valor por defecto para devolver si el índice está fuera de rango.
sliceDesde: 0.7.0
Extrae una subsecuencia de los bytes. Falla con un error si el índice de inicio o de fin está fuera de rango.
start
El índice inicial (inclusivo).
endPor defecto: none
El índice final (exclusivo). Si se omite, se extrae toda la porción hasta el final.
count
La cantidad de elementos que se extraen. Equivale a pasar start + count como posición end. Es mutuamente excluyente con end.