Bytes frente a caracteres en Mojo
Un String guarda UTF-8, así que el largo depende de qué cuentes.
def main():
var plain = String("cafe")
# Escapes keep this source ASCII; the stored text is not.
var accented = String("caf\u00e9")
print(plain.byte_length(), plain.count_codepoints())
print(accented.byte_length(), accented.count_codepoints())
var snowy = String("snow \u2603")
print(snowy.byte_length(), snowy.count_codepoints())
Cómo funciona
cafees ASCII puro, así que las dos medidas coinciden.- El acento escapado cuesta dos bytes pero un solo punto de código.
byte_length()cuenta almacenamiento;count_codepoints()cuenta caracteres.
Palabras clave y builtins usados aquí
Stringdefprintvar
El intento, en números
- Líneas
- 8
- Caracteres a escribir
- 330
- Tokens
- 63
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 50 segundos.
Paso 5 de 5 en Cadenas; paso 22 de 26 en Fundamentos del lenguaje.