Поиск длины строки

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, которая подсчитывает сырые байты бинарного представления строки — полезно в низкоуровневых операциях, где кодировка не имеет значения.

Смотрите также