Spec-Zone.ru › Crystal

Переменные

Чтобы сохранить значение и использовать его позже, его можно присвоить переменной.

Например, если вы хотите сказать Hello Penny! три раза, вам не нужно повторять одну и ту же строку несколько раз. Вместо этого можно присвоить её переменной и использовать повторно:

message = "Hello Penny!"

puts message
puts message
puts message

Эта программа выводит строку Hello Penny! три раза в стандартный поток вывода, каждый раз добавляя перевод строки.

Имя переменной всегда начинается со строчной буквы Unicode (или знака подчёркивания, который, однако, зарезервирован для особых случаев использования) и может состоять из буквенно-цифровых символов и знаков подчёркивания. Согласно общепринятому соглашению, заглавные буквы не используются, а имена записываются в snake_case.

Примечание

Переменные, о которых говорится в этом уроке, называются локальными переменными. Другие виды переменных будут рассмотрены позже. Пока мы сосредоточимся только на локальных переменных.

Тип

Тип переменной автоматически определяется компилятором. В приведённом выше примере это String.

Это можно проверить с помощью typeof:

message = "Hello Penny!"

p! typeof(message)

Примечание

p! похож на puts: он выводит значение в стандартный поток вывода, но также выводит и выражение в коде. Благодаря этому он становится полезным инструментом для проверки состояния программы на Crystal и отладки.

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

Переменной можно повторно присвоить другое значение:

message = "Hello Penny!"

p! message

message = "Hello Sheldon!"

p! message

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

message = "Hello Penny!"

p! message, typeof(message)

message = 73

p! message, typeof(message)

To the extent possible under law, the persons who contributed to this workhave waived
all copyright and related or neighboring rights to this workby associating CC0 with it.
https://crystal-lang.org/reference/1.2/tutorials/basics/20_variables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API