Elixir - listy Char
Lista znaków to nic innego jak lista znaków. Rozważ poniższy program, aby zrozumieć to samo.
IO.puts('Hello')
IO.puts(is_list('Hello'))
Powyższy program generuje następujący wynik -
Hello
true
Zamiast bajtów lista znaków zawiera punkty kodowe znaków w apostrofach. So while the double-quotes represent a string (i.e. a binary), singlequotes represent a char list (i.e. a list). Zauważ, że IEx wygeneruje tylko punkty kodowe jako dane wyjściowe, jeśli którykolwiek ze znaków jest poza zakresem ASCII.
Listy znaków są używane głównie podczas interakcji z Erlangiem, w szczególności ze starymi bibliotekami, które nie akceptują plików binarnych jako argumentów. Możesz przekonwertować listę znaków na ciąg i z powrotem za pomocą funkcji to_string (char_list) i to_char_list (string) -
IO.puts(is_list(to_char_list("hełło")))
IO.puts(is_binary(to_string ('hełło')))
Powyższy program generuje następujący wynik -
true
true
NOTE - Funkcje to_string i to_char_list są polimorficzne, tzn. mogą przyjmować wiele typów danych wejściowych, takich jak atomy, liczby całkowite i konwertować je odpowiednio na łańcuchy i listy znaków.