diff options
Diffstat (limited to 'ru-ru')
-rw-r--r-- | ru-ru/elixir-ru.html.markdown | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/ru-ru/elixir-ru.html.markdown b/ru-ru/elixir-ru.html.markdown deleted file mode 100644 index 5a01d269..00000000 --- a/ru-ru/elixir-ru.html.markdown +++ /dev/null @@ -1,119 +0,0 @@ ---- -language: elixir -contributors: - - ["Joao Marques", "http://github.com/mrshankly"] - - ["Dzianis Dashkevich", "https://github.com/dskecse"] - - ["Ryan Plant", "https://github.com/ryanplant-au"] -translator: - - ["Ev Bogdanov", "https://github.com/evbogdanov"] -filename: learnelixir-ru.ex -lang: ru-ru ---- - -Elixir — современный функциональный язык программирования, который работает на -виртуальной машине Erlang. Elixir полностью совместим с Erlang, но обладает -дружелюбным синтаксисом и предлагает больше возможностей. - -```elixir - -# Однострочные комментарии начинаются с символа решётки. - -# Для многострочных комментариев отдельного синтаксиса нет, -# поэтому просто используйте несколько однострочных комментариев. - -# Запустить интерактивную Elixir-консоль (аналог `irb` в Ruby) можно -# при помощи команды `iex`. -# Чтобы скомпилировать модуль, воспользуйтесь командой `elixirc`. - -# Обе команды будут работать из терминала, если вы правильно установили Elixir. - -## --------------------------- -## -- Базовые типы -## --------------------------- - -# Числа -3 # целое число -0x1F # целое число -3.0 # число с плавающей запятой - -# Атомы, которые являются нечисловыми константами. Они начинаются с символа `:`. -:hello # атом - -# Кортежи, которые хранятся в памяти последовательно. -{1,2,3} # кортеж - -# Получить доступ к элементу кортежа мы можем с помощью функции `elem`: -elem({1, 2, 3}, 0) #=> 1 - -# Списки, которые реализованы как связные списки. -[1,2,3] # список - -# У каждого непустого списка есть голова (первый элемент списка) -# и хвост (все остальные элементы списка): -[head | tail] = [1,2,3] -head #=> 1 -tail #=> [2,3] - -# В Elixir, как и в Erlang, знак `=` служит для сопоставления с образцом, -# а не для операции присваивания. -# -# Это означает, что выражение слева от знака `=` (образец) сопоставляется с -# выражением справа. -# -# Сопоставление с образцом позволило нам получить голову и хвост списка -# в примере выше. - -# Если выражения слева и справа от знака `=` не удаётся сопоставить, будет -# брошена ошибка. Например, если кортежи разных размеров. -{a, b, c} = {1, 2} #=> ** (MatchError) - -# Бинарные данные -<<1,2,3>> - -# Вы столкнётесь с двумя видами строк: -"hello" # Elixir-строка (заключена в двойные кавычки) -'hello' # Erlang-строка (заключена в одинарные кавычки) - -# Все строки представлены в кодировке UTF-8: -"привет" #=> "привет" - -# Многострочный текст -""" -Я текст на несколько -строк. -""" -#=> "Я текст на несколько\nстрок.\n" - -# Чем Elixir-строки отличаются от Erlang-строк? Elixir-строки являются бинарными -# данными. -<<?a, ?b, ?c>> #=> "abc" -# Erlang-строка — это на самом деле список. -[?a, ?b, ?c] #=> 'abc' - -# Оператор `?` возвращает целое число, соответствующее данному символу. -?a #=> 97 - -# Для объединения бинарных данных (и Elixir-строк) используйте `<>` -<<1,2,3>> <> <<4,5>> #=> <<1,2,3,4,5>> -"hello " <> "world" #=> "hello world" - -# Для объединения списков (и Erlang-строк) используйте `++` -[1,2,3] ++ [4,5] #=> [1,2,3,4,5] -'hello ' ++ 'world' #=> 'hello world' - -# Диапазоны записываются как `начало..конец` (оба включительно) -1..10 #=> 1..10 - -# Сопоставление с образцом применимо и для диапазонов: -lower..upper = 1..10 -[lower, upper] #=> [1, 10] - -# Карты (известны вам по другим языкам как ассоциативные массивы, словари, хэши) -genders = %{"david" => "male", "gillian" => "female"} -genders["david"] #=> "male" - -# Для карт, где ключами выступают атомы, доступен специальный синтаксис -genders = %{david: "male", gillian: "female"} -genders.gillian #=> "female" - -``` |