Elixir:
Поиск длины строки
Как сделать:
В Elixir, чтобы получить длину строки, используйте функцию String.length/1. Вот как:
my_string = "Привет, мир!"
length = String.length(my_string)
IO.puts(length)Пример вывода:
13Погружение
Внутри, строки в Elixir представлены бинарными кодировками UTF-8. Каждый символ может занимать от одного до четырёх байтов. Поэтому, когда мы вызываем String.length/1, мы не просто считаем байты; мы считаем графемы Юникода, которые мы воспринимаем как символы.
Исторически операции с длиной строки во многих языках были ориентированы на байты и не учитывали многобайтовые символы. Подход Elixir современный и с самого начала дружественный к Unicode.
Что касается альтернатив, вы могли бы вручную считать графемы, используя рекурсию или цикл, но это ненужно и неэффективно. String.length/1 оптимизирована и идиоматична.
Реализация в Elixir использует Erlang NIF (Native Implemented Function) для String.length/1, делая её молниеносной. Подсчёт байтов вместо графем выполняется с помощью byte_size/1, которая подсчитывает сырые байты бинарного представления строки — полезно в низкоуровневых операциях, где кодировка не имеет значения.