Junior — Middle
Hoe krijgt men toegang tot een teken in een string op basis van de positie en waar moet men rekening mee houden bij het gebruik van deze aanpak?
sobes.tech AI
Antwoord van AI
В Go доступ к символу строки по позиции происходит через индексирование, например s[i], где s — строка, а i — позиция.
Однако важно помнить, что строки в Go — это последовательности байтов в кодировке UTF-8. При индексировании вы получаете байт, а не символ (руну). Если строка содержит только ASCII-символы, это не проблема, но для символов Unicode, занимающих несколько байтов, такой доступ может привести к некорректным результатам.
Чтобы получить символ (руну) по позиции, нужно использовать преобразование строки в срез рун:
s := "Привет"
runes := []rune(s)
fmt.Println(string(runes[0])) // Выведет 'П'
Таким образом, при работе с позициями символов в строке следует учитывать, что индексирование по байтам не всегда соответствует символам, особенно для Unicode.