Lolcode - Переменные
Как и в любом другом языке программирования, LOLCODE позволяет определять переменные различных типов. Эта глава познакомит вас с работой с переменными в LOLCODE.
Объем переменных
Область видимости переменной является локальной для функции или программного блока, т.е. переменная, определенная в одной области, не может быть вызвана в любой другой области той же программы. Переменные доступны только после их объявления.
Обратите внимание, что в LOLCODE нет глобальной области переменных.
Соглашения об именах
Имена переменных обычно называют идентификаторами. Вот некоторые из соглашений об именах переменных в LOLCODE:
Идентификаторы переменных могут быть написаны ЗАГЛАВНЫМИ или строчными буквами (или их комбинацией).
Они могут начинаться только с буквы, за которой могут следовать другие буквы, цифры и символы подчеркивания.
LOLCODE не позволяет использовать пробелы, дефисы или другие символы при именовании переменной.
Идентификаторы переменных чувствительны к регистру.
Вот некоторые из правил для допустимых и недопустимых имен для переменных в LOLCODE -
Имя всегда должно начинаться с алфавита. Например,name, Name действительны.
Имя переменной не может начинаться с цифры. Например,2var является недействительным.
Имя переменной не может начинаться со специального символа.
Переменная может содержать _ или цифру в любом месте своего имени, кроме начального индекса. Например,name2_m допустимое имя.
Некоторые примеры допустимых имен в LOLCODE показаны ниже -
HAI 1.2
I HAS A food ITZ "111.00033"
I HAS A food2 ITZ "111"
I HAS A fo_od ITZ "1"
VISIBLE food
VISIBLE food2
VISIBLE fo_od
KTHXBYE
Все операторы объявления в приведенном выше коде действительны и при выполнении будут давать следующий результат:
sh-4.3$ lci main.lo
111.00033
111
1
Некоторые примеры недопустимых операторов и их вывод приведены ниже -
Пример 1
HAI 1.2
I HAS A 2food ITZ "111.00033"
KTHXBYE
Приведенный выше код даст следующий результат, когда вы его выполните:
sh-
4.3$ lci main.lo
Line 2: Expected: identifier; Got: int(2).
Пример 2
HAI 1.2
I HAS A _food ITZ "111.00033"
KTHXBYE
Приведенный выше код даст следующий результат, когда вы его выполните:
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: _food ITZ "111.00033".
Пример 3
HAI 1.2
I HAS A f$ood ITZ "111.00033"
KTHXBYE
Приведенный выше код даст следующий результат, когда вы его выполните:
sh-
4.3$ lci main.lo
Line 2: Unrecognized sequence at: $ood ITZ "111.00033".
Объявление и присвоение переменных
Чтобы declareпеременная LOLCODE предоставляет ключевое слово «I HAS A», за которым следует имя переменной. Ниже вы можете найти синтаксис объявления переменной.
I HAS A VAR BTW VAR is empty now, You can use any name instead of var
Чтобы assignпеременной значение в том же операторе, вы можете после имени переменной поставить «ITZ», а затем указать значение, которое вы хотите присвоить. Используйте следующий синтаксис, чтобы присвоить значение переменной -
<variable> R <expression>
пример
VAR R "Green" BTW VAR is now a YARN and equals "Green"
VAR R 30 BTW VAR is now a NUMBR and equals 30
Вы также можете declare и assign переменные одновременно, используя следующий синтаксис -
I HAS A VAR ITZ VALUE
пример
I HAS A NAME ITS “TUTORIALS POINT”
пример
HAI 1.2
BTW this is how we declare variables
I HAS A food
I HAS A bird
BTW this is how we assign variables
food R 1
bird R 5
BTW this is how initialize variables
I HAS A biz ITZ "OMG!"
VISIBLE food
VISIBLE biz
VISIBLE bird
KTHXBYE
Вышеупомянутая программа показывает объявление переменных и распечатывает их. Выход -
sh-
4.3$ lci main.lo
1
OMG!
5
Тип литья
Чтобы преобразовать значение одного типа в другой тип, мы используем приведение типов. Преобразование NUMBAR в число NUMBR обрезает десятичную часть числа с плавающей запятой. Преобразование NUMBAR в YARN (например, путем его печати) обрезает вывод до двух знаков после запятой по умолчанию.
пример
HAI 1.2
I HAS A food ITZ "111.00033"
VISIBLE food
BTW this is how we do type casting
MAEK food A NUMBAR
VISIBLE food
KTHXBYE
Вышеупомянутая строка кода даст следующий результат -
sh-4.3$ lci main.lo
111.00033
111.00033
Все переменные, объявленные в программе LOLCODE, являются локальными переменными, и в этом языке нет глобальной области видимости для какой-либо переменной.