Guia 6 de 53
Literais de bytes e formatação
Conserve os valores exatos dos bytes e escolha largura e precisão em tempo de execução.
Nesta página
Valores exatos de bytes¶
b"\xAB" guarda um byte com valor 171. Cada escape hexadecimal exige exatamente dois dígitos. O texto sem escapes fornece bytes UTF-8, enquanto os escapes conservam zero e bytes inválidos em UTF-8. Literais de bytes não interpolam expressões. .len() conta os bytes; .bytes() devolve uma cópia como valores inteiros, indexados a partir de zero como os demais arrays.
// A assinatura KTX 2 contém bytes inválidos em UTF-8.
let signature = b"\xABKTX 20\xBB\r\n\x1A\n"
print(signature.len())
print(signature.bytes()[0])
print(signature.bytes()[7])Literais de bytes funcionam na VM e nos backends native e LLVM, incluindo a VM do navegador. O wasm-aot independente ainda os rejeita na compilação porque não tem uma representação para bytes opacos.
Largura e precisão dinâmicas¶
Coloque uma expressão inteira entre chaves no especificador de formato da interpolação. O valor executa primeiro; depois, cada parâmetro de formato executa uma vez, da esquerda para a direita. Largura e precisão precisam ser inteiros entre zero e um milhão. A precisão decimal é aplicada antes do alinhamento. A emissão JavaScript ainda informa que especificadores de formato não são suportados.
// Defina a precisão monetária e a largura das colunas em um só 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}|")Largura e precisão dinâmicas funcionam na VM e nos backends native e LLVM, incluindo a VM do navegador. O wasm-aot independente ainda as rejeita na compilação porque não tem um runtime de especificadores de formato.
DOCS / OPINIÃO
Esta página deixou alguma pergunta?
Conte onde a explicação perdeu você. A documentação também faz parte da experiência da linguagem.