@VadimRublev
Изучаю и немного программирую на Go, + фронт (JS).

Как замеряют длину len() и RuneCountInString()?

var question = "¿Cómo estás?" // 12 символов в значении.
fmt.Println(len(question), "bytes") // 15 bytes
fmt.Println(utf8.RuneCountInString(question), "runes") // 12 runes
Функция len() считает байты. Длина по ней будет равна количеству символов только если эти символы - латиница в кодировке ASCII.
Функция utf8.RuneCountInString() считает руны - 1 rune = 1 символ. Символы любые, которые есть в UTF-8.
Я правильно понял?

Т. е. я недопонимаю почему в рунах длина равна количеству символов...
  • Вопрос задан
  • 89 просмотров
Пригласить эксперта
Ответы на вопрос 2
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
Да
Ответ написан
dimonchik2013
@dimonchik2013
настоящие экстремалы предпочитают жен своих друзей
в чем вопрос-то?

если работаешь со строками - работаешь с кодировками

если такой умный, что всегда знаешь сколько какой символ занимает байт - работай с байтами и len

не все такие. Для не всех ввели rune, отдающее число символов строки вне зависимости от кодировки

RuneCountInString(asciiString)
RuneCountInString(utf8String)


вернут одинаково

в чем вопрос?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Level Travel Москва
от 130 000 до 200 000 ₽
от 3 000 до 4 200 $
Digital Horizon Москва
До 220 000 ₽
12 авг. 2020, в 15:55
2000 руб./за проект
12 авг. 2020, в 15:48
3000 руб./за проект