Онлайн среда выполнения кода языка программирования Crystal
Изучение любого языка программирования начинается с изучения простых типов данных. В данной статье показано, как можно изучать простые типы данных нового языка программирования Crystal в среде программирования. А серия следующих статей будет посвящена итерационно-инкрементному методу изучения нового языка программирования Crystal
Примечание. Язык программирования Crystal появился в 2014 году. Это объектно-ориентированный язык программирования общего назначения, спроектированный и разработанный Арье Боренцвейгом, Хуаном Вайнерманом и Брайаном Кардиффом. Он обладает Ruby-подобным синтаксисом, но, в отличие от Ruby, является компилируемым и статически типизированным языком, использующим вывод типов. Распространяется как свободное и открытое программное обеспечение под лицензией Apache версии 2.0.
Примечание. Для более эффективного усвоения изучаемого материала познакомьтесь с методикой и стилем познания.
В соответствие с указанным выше итерационно-инкрементным подходом изучение типов данных языка программирования Crystal осуществляется в несколько отдельных этапов. На первом этапе будем изучать простые (стандартные) типы данных. Об этом и пойдет речь далее в этой статье.
Изучение языка программирования Crystal целесообразно осуществлять в онлайн среды программирования. Переходите по этой ссылке.
Среда выполнения кода, как показано на рисунке ниже, имеет поле редактора, где записывается исходный код, кнопку “Скомпилировать и Выполнить” и поле вывода результатов, которое появляется после нажатия кнопки.
Для сохранения написанного ранее кода необходимо: скопировать код и загрузить в файл в папку Загрузки ПК, сделав щелчок левой клавишей мышки по кнопке Download.
Для дальнейшего использования сохраненного кода необходимо:
- -Открыть файл в блокноте и скопировать в буфер;
- -Скопировать из буфера в редактор среды Crystal.
В соответствие с методикой итерационного и инкрементного подхода изучения языков программирования на первом цикле обучения методам процедурного программирования начинать надо с изучения простых типов данных. Простые типы данных нового языка программирования Crystal, как и любого другого языка лежат в основе его использования.
К простым типам данных языка программирования Crystal относятся: целочисленные, вещественные, символьные и строковые типы.
Как изучать целочисленные типы данных?
Для обработки целых чисел применяются целочисленные простые типы данных, которые в языке Crystal имеют две разновидности — знаковые Int8(16, 32,64) и беззнаковые UInt8(16, 32, 64). Их можно записывать с суффиксом типа, отделяемом от числа знаком подчеркивания, например, 123_i16 это тип Int16, и без суффикса, тогда тип по умолчанию выбирается из наиболее подходящих к числу типов: Int32, Int64 и UInt64.
Целочисленные типы данных в Crystal можно представлять в двоичной форме, начиная с символов «0b»: 0b1100(число 12), в восьмеричной форме, начиная с символов «0o»: 0o123 (число 83) и в шестнадцатеричной форме, начиная с символов «0x»: 0x012D (число 62)
Для закрепления данного материала необходимо выполнить ряд действий с целыми числами, как в области допустимых значений, так и за ее пределами. Допустимыми операторами для целых чисел являются: + ; — ; * ; /. Ниже на рисунке показаны несколько примеров действий с целочисленными типами данных.
Хорошим способом усвоения синтаксиса и семантики языка программирования является анализ ошибок выполнения кода (…и опыт сын ошибок трудных…). На рисунке ниже показаны примеры некоторых ошибок, связанных с некорректным использованием типов данных.
Сообщения об ошибках приводится на английском языке. При необходимости их можно перевести с помощью онлайн-переводчика.
Как изучать типы вещественных чисел?
Для работы с дробными числами используются простые вещественные типы данных. В языке Crystal есть два вещественного типа с плавающей точкой: Float32 и Float64, которые соответствуют типам, определяемым IEEE:binary32 и binary64.
Запись вещественного числа также может с суффиксом типа после символа подчеркивания и без суффикса, тип по умолчанию Float64. Например, 121.0_f32( Float32), 125.0 (Float64).
Для удобства чтения чисел их следует записывать, разделяя группы цифр с помощью символа подчеркивания. Например, запись числа 1_000_000 читается проще, чим запись 1000000
Для закрепления данного материала необходимо выполнить ряд действий с вещественными числами, как в области допустимых значений, так и за ее пределами, используя простейшие операторы: + ; — ;* ; /.
Здесь также можно поэкспериментировать с целью анализа возможных ошибок при действиях с данными вещественного типа в языке программирования Crystal. Рассмотрим пример.
Из рисунка видно, что при использовании данных, превышающих допустимое значение для заданного типа, возникает ошибка — переполнения разрядной сетки, которая не исправляется компилятором языка. Это говорит о том, что правильное использование типов данных ы этом языке программирования возлагается на программиста.
Изучение символьных и строковых типов данных
Символьный тип(Char) в языке Crystal представляется в Unicode кодировки UTF-8. Это означает, что для стандартных символов коды ASCII (0-127) и коды UTF-8 идентичны и занимают один байт памяти. Другие символы требуют от 2 до 4 байтов(от 16 до 32 разрядов). В частности, то, что начинается с 110, представляет собой двухбайтную последовательность, а то, что начинается с 1110, представляет собой трехбайтную последовательность, и то, что начинается с 11110, представляет собой четырехбайтную последовательность.
Записывается UTF-8 символ, окруженный одинарными кавычками: например, ‘a’ ‘Z’ ‘5’.
Строковый тип(String) представляет неизменяемую последовательность символов в кодировке UTF-8. Создается String с помощью строкового литерала, заключая UTF-8 символы в двойные кавычки: например, «hello world»
Константа(тип Symbol) в языке Crystal определяется именем, без необходимости давать ей числовое значение, например, без пробелов :hello, :good_bye, и с пробелами и символами — :»symbol with spaces».
Изучение простых типов данных языка программирования Crystal на этом можно было бы закончить. Однако на практике применяются не только наборы простых типов, но и их комбинации.
Изучение массива данных
Особым типом данных являются массивы(Array). Массив это универсальная структура данных, содержащая элементы определенного типа. Не смотря на то, что массивы относятся к структурированным типам, изучение их на данном этапе необходимо, потому что они широко используются и при процедурном(структурном) программировании.
Массивы на языке Crystal создается с помощью следующих литералов массива:
-
[
1,
2,
3]
# Array(Int32) -
[
1,
«hello»,
‘x’]
# Array(Int32 | String | Char)
Массив может иметь элементы смешанного типа, это значит, что массив будет являться объединением типов, и они будут определяться при создании массива: либо при явном определении типа, либо используя литерал массива.
Совместные (или комбинированные) типы данных являются мощной особенностью Crystal: выражение может иметь набор из множества типов во время компиляции, и компилятор тщательно проверяет, разрешены ли все вызовы метода для всех этих типов.
При создании пустого массива мы всегда должны определить тип:
[]
of
Int32
# создастся как Array(Int32).new.
[]
# синтаксическая ошибка – не определен тип.
Способы объявления массивов.
- c=[12, 27, 31] # Array(Int32)
- b=[11, «hello», ‘x’] # Array(Int32 | String | Char)
- d=[] of Int32 # создастся как Array(Int32).new
- # [ ] # синтаксическая ошибка, не определен тип
Можно легко добавлять значения массива с помощью оператора «<<» , но только для целых и строковых типов.
c=[12, 27, 31] << 43
puts c[3] # результат c=[12, 27, 31, 43]
Для итерации массивов можно использовать любой оператор цикла, но лучше использовать метод «each». Он намного быстрее простого цикла «while».
Над массивами можно выполнять различные действия. Например, суммирование элементов массива.
sum=c[1]+c[2]
puts «Суммирование элементов массива с[]»
puts sum
Преобразование типов
Простые типы данных нового языка программирования Crystal можно преобразовывать из одного типа в другой. Но следует учесть, что язык программирования Crystal сильно типизирован, поэтому надо быть очень аккуратным с преобразованиями типов. Преобразование типа следует выполнять явно т.е. недвусмысленно и ясно для компилятора Crystal. Это можно выполнить с помощью разных методов типа «to_*», где вместо «звездочки» указывается краткое обозначение типа. Для простейших типов данных компилятор языка Crystal вполне справляется с преобразованиями автоматически, например, int8 в int32.
Например, для преобразования типа «float» в целое число можно использовать метод to_i, но следует иметь в виду, что преобразование осуществляется “отбрасыванием” дробной части без предупреждения.
Синтаксис имеет вид;
х = 64.34603985
х.to_i # результат 64
Метод to_s преобразует любой тип в тип String. Для преобразования в числа с плавающей запятой, надо использовать метод ‘to_f ‘.
Кроме того, Crystal делает различие между двумя понятиями:
Тип на стадии компиляции. то есть какой тип видит компилятор, он задается с помощью опреатора «typeof»;
Тип времени выполнения — какой тип объект имеет, когда программа уже запущена и он определяется методом «class». Но об этом позже.
Заключение
Изучение нового языка программирования Crystal не сложно, особенно для тех, кто знает хотя бы один из языков программирования. Но в любом случае начинать надо с изучения простых типов данных.
Простые типы данных нового языка программирования Crystal изучаются в среде программирования итерационно-инкрементным методом, подробно описанном в статье «Как правильно изучать язык программирования?».
Хорошую помощь в освоении языка программирования оказывает его среда программирования. В данном случае используется онлайн режим ее работы. Изучение типов данных нового языка программирования Crystal всегда следует осуществлять в консольном режиме работы среды программирования.
Статьи по теме
А также…
- Что такое программирование?
- Как выбирать язык программирования высокого уровня для изучения
- Что выбирать язык или платформу программирования?
- Онлайн школы и курсы IT профессий
- Как стать программистом?
- Дистанционный курс «Python-разработчик»
- Обучение программированию дистанционно в Ставрополе
- Как изучать алгоритмы решения задач?
- Что такое большие данные?
- Интеллектуальный анализ больших данных
- Как стать специалистом по большим данным?