Guía 6 de 53
Literales de bytes y formato
Conserve los valores exactos de los bytes y elija ancho y precisión en tiempo de ejecución.
En esta página
Valores exactos de bytes¶
b"\xAB" guarda un byte con valor 171. Cada escape hexadecimal requiere exactamente dos dígitos. El texto sin escapes aporta bytes UTF-8, mientras que los escapes conservan cero y bytes inválidos en UTF-8. Los literales de bytes no interpolan expresiones. .len() cuenta los bytes; .bytes() devuelve una copia como valores enteros, indexados desde cero como los demás arrays.
// La firma KTX 2 contiene bytes inválidos en UTF-8.
let signature = b"\xABKTX 20\xBB\r\n\x1A\n"
print(signature.len())
print(signature.bytes()[0])
print(signature.bytes()[7])Los literales de bytes funcionan en la VM y en los backends native y LLVM, incluida la VM del navegador. El wasm-aot independiente todavía los rechaza al compilar porque no tiene una representación para bytes opacos.
Ancho y precisión dinámicos¶
Coloque una expresión entera entre llaves en el especificador de formato de la interpolación. El valor se ejecuta primero; después, cada parámetro de formato se ejecuta una vez, de izquierda a derecha. El ancho y la precisión deben ser enteros entre cero y un millón. La precisión decimal se aplica antes de la alineación. La emisión JavaScript todavía informa que los especificadores de formato no están soportados.
// Defina la precisión monetaria y el ancho de las columnas en un solo lugar.
let decimal_places = 2
let label_width = 10
let name = "Coffee"
let price = 12.345
print("|{name:<{label_width}}|{price:.{decimal_places}f}|")
print("|{price:>{label_width}.{decimal_places}f}|")El ancho y la precisión dinámicos funcionan en la VM y en los backends native y LLVM, incluida la VM del navegador. El wasm-aot independiente todavía los rechaza al compilar porque no tiene un runtime de especificadores de formato.
DOCS / OPINIÓN
¿Esta página dejó alguna pregunta?
Cuéntanos dónde te perdió la explicación. La documentación también forma parte de la experiencia del lenguaje.