Elixir:
Wycinanie podłańcuchów

Jak to zrobić:

W Elixirze, używamy głównie funkcji String.slice/3, żeby wyciągnąć podciąg.

# Wyciąganie podciągu zakresu znaków
string = "Hello Elixir World"
substring = String.slice(string, 6, 6) # Wyciągnięcie słowa "Elixir"
IO.puts(substring)

# Gdy zna się początkowy i końcowy indeks
start_index = 6
end_index = 11
IO.puts(String.slice(string, start_index..end_index)) # Tak samo, "Elixir"

# Użycie negatywnych indeksów (liczone od końca)
IO.puts(String.slice(string, -5, 5)) # Wydobędzie "World"

Output:

Elixir
Elixir
World

Głębsze spojrzenie:

Historia Elixir to historia poszukiwania jak najlepszego rozwiązania w świecie Erlanga. Do wersji 1.0 w Elixirze dodane zostały wyrafinowane narzędzia do pracy ze stringami, w tym wyciąganie podciągów. Alternatywą jest użycie regexu (Regex moduł), ale to dobrze mieć dedykowaną, wydajną funkcję.

Pod względem implementacji String.slice/3 jest wystarczająco inteligentna, by radzić sobie z różnymi rodzajami ciągów różnych długości oraz uwzględnia Unicode (co jest nie-trivialne!). Pamiętajmy, w Elixirze indeksowanie jest oparte na bajtach, nie znakach, co jest ważne przy pracy z Unicode.

Zobacz także:

  1. Oficjalna dokumentacja modułu String w Elixirze
  2. Obsługa Unicode w Elixirze
  3. Dokumentacja modułu Regex w Elixirze