typestar

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

  1. cafe es ASCII puro, así que las dos medidas coinciden.
  2. El acento escapado cuesta dos bytes pero un solo punto de código.
  3. byte_length() cuenta almacenamiento; count_codepoints() cuenta caracteres.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 5 de 5 en Cadenas; paso 22 de 26 en Fundamentos del lenguaje.

← Anterior Siguiente →