Выбрать главу

Как вы увидите, это не запустит ваш код. Вместо этого он создаст файл «привет» (без расширения), который является собственным исполняемым файлом для вашего компьютера. Вы можете запустить этот исполняемый файл с помощью ./hello.

Фактически, crystal run hello.cr работает в основном как сокращение для crystal build hello.cr && ./hello.

Вы также можете использовать crystal build --release hello.cr для создания оптимизированного исполняемого файла. Это займет больше времени, но потребует нескольких преобразований кода, чтобы ваша программа работала быстрее. Более подробную информацию о том, как развернуть окончательную версию вашего приложения, можно найти в Приложении B «Будущее Crystal».

Краткое содержание

Crystal обеспечивает очень хорошую производительность, стабильность и удобство использования. Это полноценный язык с растущим сообществом и экосистемой, который сегодня можно использовать в производстве. Crystal является очень инновационным и содержит все компоненты успешного языка программирования.

Знание того, как создавать и запускать программы Crystal, будет иметь основополагающее значение в следующих главах, поскольку вам предстоит опробовать множество примеров кода.

Теперь, когда вы знаете о происхождении Crystal и важных характеристиках языка (а именно, о его выразительности и производительности), давайте продолжим изучать основы программирования в Crystal и поможем вам начать и продуктивно работать с этим языком.

2. Основные семантики и особенности Crystal

В этой главе вы изучите основы программирования Crystal, которые помогут вам быстро освоиться, даже если вы еще не умеете писать ни одной строки кода Crystal. Здесь вы узнаете о вещах, общих для многих других языков программирования, таких как переменные, функции и структуры управления, а также о функциях, характерных для Crystal, таких как система типов и передача блоков. Ожидается, что у вас уже есть базовый опыт работы с каким-либо другим языком программирования.

В этой главе будут рассмотрены следующие основные темы:

• Значения и выражения

• Управление потоком выполнения с помощью условных операторов.

• Изучение системы типов

• Организация кода в методах.

• Контейнеры данных

• Организация кода в файлах.

Технические требования

Для выполнения задач данной главы вам понадобится следующее:

• Рабочая установка Crystal.

• Текстовый редактор, настроенный для использования Crystal.

Вы можете обратиться к Главе 1 «Введение в Crystal» для получения инструкций по настройке Crystal и к Приложению A «Настройка инструментов» для получения инструкций по настройке текстового редактора для Crystal.

Каждый пример в этой главе (а также в остальной части книги) можно запустить, создав текстовый файл с расширением .cr для кода и затем используя команду crystal file.cr в терминальном приложении. Вывод или любые ошибки будут показаны на экране.

Вы можете получить весь исходный код, использованный в этой главе, на GitHub книги по адресу https://github.com/PacktPublishing/Crystal-Programming/tree/main/Chapter02.

Значения и выражения

Программирование — это искусство преобразования и перемещения данных. Мы хотим получать информацию, возможно, от пользователя, печатающего на клавиатуре, от датчика Интернета вещей на крыше вашего дома или даже от входящего сетевого запроса, отправленного на ваш сервер. Затем мы хотим интерпретировать и понять эту информацию, представляя ее в нашей программе структурированным образом. Наконец, мы хотим обработать и преобразовать его, применяя алгоритмы и взаимодействуя с внешними источниками (например, запрос к базе данных или создание локального файла). Практически все компьютерные программы следуют этой структуре, и важно понимать, что все дело в данных.

Crystal имеет множество примитивных типов данных, используемых для выражения значений. Например, вы можете записывать целые числа, используя цифры, например 34. Вы также можете хранить данные в переменных. Они действуют как именованные контейнеры для хранения значений и могут изменяться в любое время. Для этого просто напишите имя переменной, затем символ равенства и значение, которое вы хотите сохранить. Вот пример программы Crystaclass="underline"

score = 38

distance = 104