Warum wird in Julia von der Indizierung von UTF8-Strings abgeraten?

8

Die Einführung zu Julia, Lerne Julia in Y Minuten , rät Benutzern davon ab, UTF8-Strings zu indizieren:

%Vor%

Warum wird von einer Wiederholung solcher Strings abgeraten? Was speziell an der Struktur dieses alternativen Zeichenkettentyps macht Indexierungsfehler anfällig? Ist dies eine Julia-spezifische Fallstricke, oder erstreckt sich dies auf alle Sprachen mit UTF8-String-Unterstützung?

    
David Shaked 02.02.2016, 16:24
quelle

1 Antwort

11

Weil in UTF8 ein Zeichen nicht immer in einem einzigen Byte kodiert ist.

Nehmen Sie zum Beispiel die deutsche Sprache böse (böse). Die Bytes dieser Zeichenfolge in UTF8-Codierung sind:

%Vor%

Wie Sie sehen können, benötigt der Umlaut ö 2 Bytes.

Wenn Sie nun diese UTF8-codierte Zeichenfolge direkt indexieren, wird "böse"[4] Ihnen s und nicht e geben.

Sie können die Zeichenfolge jedoch als iterbares Objekt in julia verwenden:

%Vor%

Und da Sie gefragt haben, Nein, direkte Byte-Indizierung Probleme mit UTF8-Strings sind nicht spezifisch für Julia.

Empfehlung für weitere Lektüre:
Ссылка

    
gollum 02.02.2016, 16:28
quelle

Tags und Links