0Pricing
Elixir & Phoenix: Scalable Backend Development · Урок

Основные типы данных и операторы

Изучите базовые типы данных Elixir, такие как атомы, списки, кортежи и отображения, а также научитесь использовать основные операторы.

«Основные типы данных и операторы» — бесплатный урок Elixir & Phoenix: Scalable Backend Development на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Elixir & Phoenix: Scalable Backend Development, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Elixir & Phoenix: Scalable Backend Development содержит 4 уроков всего.

Типы данных и операторы: Введение

В основе любой программы лежат типы данных (то, что вы можете хранить) и операторы (символы, которые с ними работают). Давайте познакомимся с базовыми типами Elixir.

Числа: Целые и с плавающей точкой

В Elixir есть два числовых типа: integers (целые) вроде 42 и floats (числа с плавающей точкой) вроде 3.14. Стандартная математика работает с обеими разновидностями, как показано в этом примере.

defmodule NumbersDemo do
  def run() do
    integer_num = 42
    float_num = 3.14159

    IO.puts "Integer: #{integer_num}"
    IO.puts "Float: #{float_num}"
    IO.puts "Sum: #{integer_num + 10.0}"
  end
end

NumbersDemo.run()

Булевы типы: True, False, Nil

Значения истинности — это true и false. Обратите внимание на nil, обозначающий «отсутствие значения», а также на то, что и false, и nil считаются ложными (falsy); всё остальное считается истинным (truthy).

defmodule BooleansDemo do
  def run() do
    is_active = true
    has_error = false
    no_value = nil

    IO.puts "Is Active? #{is_active}"
    IO.puts "Has Error? #{has_error}"
    IO.puts "No Value? #{no_value}"

    if no_value do
      IO.puts "This won't print."
    else
      IO.puts "nil is falsy!"
    end
  end
end

BooleansDemo.run()

Атомы: уникальные идентификаторы

Атом — это константа, имя которой одновременно является ее значением, например :ok. Атомы быстро сравниваются и идеально подходят в качестве статусных кодов и ключей для мап.

defmodule AtomsDemo do
  def run() do
    status = :ok
    type = :user

    IO.puts "Current status: #{status}"
    IO.puts "User type: #{type}"

    if status == :ok do
      IO.puts "Operation successful!"
    end
  end
end

AtomsDemo.run()

Строки: текстовые данные

В Elixir строка представляет собой UTF-8 бинарные данные в двойных кавычках, поэтому она поддерживает любые языки. Для соединения строк используйте оператор <>.

defmodule StringsDemo do
  def run() do
    greeting = "Hello"
    name = "CoddyKit"
    message = greeting <> ", " <> name <> "!"

    IO.puts message
    IO.puts "String length: " <> to_string(String.length(message))
  end
end

StringsDemo.run()

Списки: упорядоченные коллекции

Список (list) — это упорядоченная коллекция в квадратных скобках, которая может содержать элементы разных типов. Это главная рабочая лошадка функционального программирования, в которую очень быстро добавлять элементы в начало.

defmodule ListsDemo do
  def run() do
    my_list = [1, 2, 3, :hello, "world"]
    another_list = [4, 5]

    IO.puts "Original list: " <> inspect(my_list)
    IO.puts "Concatenated list: " <> inspect(my_list ++ another_list)
    IO.puts "Head of list: " <> inspect(hd(my_list))
    IO.puts "Tail of list: " <> inspect(tl(my_list))
  end
end

ListsDemo.run()

Кортежи: коллекции фиксированного размера

Кортеж (tuple) — это коллекция фиксированного размера в фигурных скобках. Они повсеместно используются для группировки возвращаемых значений, например {:ok, result} или {:error, reason}.

defmodule TuplesDemo do
  def run() do
    person_info = {"Alice", 30, :female}
    result_tuple = {:ok, "Data fetched"}

    IO.puts "Person: " <> inspect(person_info)
    IO.puts "Result: " <> inspect(result_tuple)

    # Accessing elements (0-indexed)
    IO.puts "Name: " <> elem(person_info, 0)
  end
end

TuplesDemo.run()

Карты: пары ключ-значение

Структура map хранит пары «ключ-значение» в %{} — обычно используются атомы в качестве ключей для повышения производительности. Используйте её всегда, когда вам нужно описать структурированные записи или конфигурацию.

defmodule MapsDemo do
  def run() do
    user = %{name: "Bob", age: 25, city: "New York"}

    IO.puts "User: " <> inspect(user)
    IO.puts "User's name: #{user.name}"

    # Updating a map
    updated_user = %{user | age: 26}
    IO.puts "Updated age: #{updated_user.age}"
  end
end

MapsDemo.run()

Арифметические операторы

В Эликсире есть привычные арифметические операторы, а также div и rem для работы с целыми числами. Обратите внимание: оператор / всегда возвращает число с плавающей точкой (float).

defmodule ArithmeticDemo do
  def run() do
    IO.puts "5 + 3 = #{5 + 3}"
    IO.puts "10 - 4 = #{10 - 4}"
    IO.puts "6 * 7 = #{6 * 7}"
    IO.puts "10 / 3 = #{10 / 3}"  # Float division
    IO.puts "10 div 3 = #{10 div 3}" # Integer division
    IO.puts "10 rem 3 = #{10 rem 3}" # Remainder
  end
end

ArithmeticDemo.run()

Операторы сравнения

Операторы сравнения возвращают булево значение. Используйте == для проверки равенства значений, но ===, когда важен и тип — 1 === 1.0 вернет false.

defmodule ComparisonDemo do
  def run() do
    IO.puts "5 == 5: #{5 == 5}"
    IO.puts "5 != 10: #{5 != 10}"
    IO.puts "5 < 10: #{5 < 10}"
    IO.puts "10 >= 10: #{10 >= 10}"
    IO.puts "1 == 1.0: #{1 == 1.0}" # True (value equality)
    IO.puts "1 === 1.0: #{1 === 1.0}" # False (type strictness)
  end
end

ComparisonDemo.run()

Проверьте свои знания

Изучите следующий фрагмент кода на Elixir:

result = 10 div 3
status = :ok
message = "Value is #{result}"
comparison = (result > 3) == true

IO.puts "#{message}, Status: #{status}, Comparison: #{comparison}"

Каким будет результат выполнения этого кода?

Проверьте свои знания (Обновлено)

Посмотрите на следующий фрагмент кода на Elixir:

result = 10 div 3
status = :ok
message = "Value is #{result}"
comparison = (result > 3)

IO.puts "#{message}, Status: #{status}, Comparison: #{comparison}"

Каким будет итоговый вывод этого кода?

Итоги: типы данных и операторы

Краткий итог: целые числа и числа с плавающей точкой, булевы значения и nil, атомы, строки, списки, кортежи, мапы, а также операторы для работы с ними. Это фундамент, на котором строятся ваши знания об Elixir.

Часто задаваемые вопросы

Урок «Основные типы данных и операторы» бесплатный?

Да — полный текст урока «Основные типы данных и операторы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Elixir & Phoenix: Scalable Backend Development, подпишись на CoddyKit PRO. Курс Elixir & Phoenix: Scalable Backend Development содержит 4 уроков всего.

Чему я научусь в уроке «Основные типы данных и операторы»?

Изучите базовые типы данных Elixir, такие как атомы, списки, кортежи и отображения, а также научитесь использовать основные операторы. Ты практикуешь Elixir & Phoenix: Scalable Backend Development с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Elixir & Phoenix: Scalable Backend Development?

Предыдущий опыт не требуется. Elixir & Phoenix: Scalable Backend Development на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Основные типы данных и операторы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Elixir & Phoenix: Scalable Backend Development?

Да. Каждый урок Elixir & Phoenix: Scalable Backend Development включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Введение в язык Elixir
  2. Основные типы данных и операторы
  3. Сопоставление с образцом и управление потоком
  4. Строки, двоичные данные и сигилы в Elixir
← Назад к Elixir & Phoenix: Scalable Backend Development