Przewodnik wprowadzający do Julii, Learn Julia in Y Minutes zniechęca użytkowników z ciągów znaków UTF8 indeksowania:Dlaczego indeksowanie ciągów UTF8 jest odradzane w Julii?
# Some strings can be indexed like an array of characters
"This is a string"[1] # => 'T' # Julia indexes from 1
# However, this is will not work well for UTF8 strings,
# so iterating over strings is recommended (map, for loops, etc).
Dlaczego iteracji po takich ciągów zniechęcać? Co konkretnie na temat struktury tego alternatywnego typu łańcucha sprawia, że błąd indeksowania jest podatny na błędy? Czy jest to pułapka specyficzna dla Julii, czy też dotyczy to wszystkich języków z obsługą ciągów UTF8?
Od UTF-8 jest kodowaniem multi-bajt Unicode, takie rzeczy indeksowania na ciąg znaków UTF-8 lub uzyskanie długość (w znakach, w przeciwieństwie do kodu jednostki) są operacjami O (n) (gdzie n jest rozmiarem łańcucha). Jeśli musisz robić takie rzeczy często, lepiej byłoby używać UTF32String i konwertować do/z UTF8 w razie potrzeby. Nie jest to pułapka specyficzna dla Julii, ale niektóre języki, takie jak Python 3, mogą wybrać najlepszą wewnętrzną reprezentację dla ciągów Unicode, które wciąż są O (1) do indeksowania, w zależności od napisu. –