LOLCODE предназначен для проверки границ дизайна языка программирования. Это эзотерический язык программирования, вдохновленный забавными вещами в Интернете. Эта глава дает вам понимание типов LOLCODE.
Типы
В настоящее время типы переменных в LOLCODE:
- струны (YARN)
- целые числа (NUMBR)
- плавает (ЧИСЛО)
- и логическое значение (TROOF)
- Массивы (БУККИТ)
В LOLCODE тип переменной динамически обрабатывается компилятором. Если переменная не имеет начального значения, она называется нетипизированной (известной как NOOB в LOLCODE).
Синтаксис объявления и использования разных типов в LOLCODE показан ниже —
Чтобы создать переменную любого типа данных
I HAS A <VARIABLE> ITZ A <DATA TYPE>
Создать переменную и присвоить ей значение
I HAS A <VARIABLE> ITZ <EXPRESSION<
Чтобы присвоить значение уже созданному типу данных
<VARIABLE> R <EXPRESSION>
Нетипизированный (NOOB)
Нетипизированный тип данных (известный как NOOB) не может быть преобразован в любой другой тип, кроме как в тип данных TROOF. Неявное приведение NOOB к TROOF создает переменную FAIL. После этого любая операция на NOOB приводит к ошибке.
Явное приведение типа данных NOOB (т.е. типов, которые неинициализированы и не имеют никакого начального значения) приводит к нулевым значениям для всех других типов.
Чтобы определить нетипизированную переменную, просто объявите переменную и присвойте значение, как показано в этом примере —
HAI 1.2 I HAS A VAR3 VAR3 R "ANYVALUE" VISIBLE VAR3 BTW Or declare in same line I HAS A VAR4 ITZ 44 VISIBLE VAR4 KTHXBYE
Когда вы запустите вышеуказанную программу, вы найдете следующий результат —
sh- 4.3$ lci main.lo ANYVALUE 44
Booleans (TROOFS)
В LOLCODE логические значения бывают двух типов. BOOLEAN обычно имеют два значения — true и false. Но в LOLCODE логическое значение известно как TROOF, а значения true / false известны как WIN / FAIL соответственно. Все неинициализированные значения, такие как пустая строка («») или пустой массив, будут преобразованы в FAIL. Все остальные инициализированные значения оцениваются как WIN.
пример
HAI 1.2 I HAS A VAR3 ITZ A TROOF VAR3 R "FAIL" VISIBLE VAR3 KTHXBYE
Вы можете увидеть следующий вывод при выполнении вышеуказанного кода —
sh-4.3$ lci main.lo FAIL
Числовые типы (NUMBR)
В LOLCODE NUMBR обозначает целое число. Любая последовательность цифр рассматривается как NUMBR, если только она не имеет десятичной дроби, встречающейся где-либо между последовательностями. Чтобы сделать любое число отрицательным, ему может предшествовать дефис (-), который обозначает отрицательное число.
пример
HAI 1.2 I HAS A VAR3 ITZ A NUMBR VISIBLE VAR3 KTHXBYE
Приведенный выше код показывает следующий результат при запуске
sh- 4.3$ lci main.lo 0
Подобно NUMBR, LOLCODE имеет другой тип данных, который представляет собой десятичную дробь или число с плавающей точкой во многих языках программирования. В LOLCODE NUMBAR — это число с плавающей запятой, содержащее одну десятичную точку. Преобразование NUMBAR в NUMBR усекает десятичную часть числа с плавающей запятой и возвращает его как NUMBR без десятичной запятой.
Струны (ЯРНА)
В LOLCODE значение, содержащее строки, то есть строковые литералы (YARN), должно начинаться и заканчиваться двойными кавычками («»).
Внутри строки может быть написано что угодно, например, пробел, запятая, точка, восклицательный знак или любой другой символ. Строка, в которой отсутствует какая-либо одиночная кавычка, может вызвать ошибку. Двоеточие используются в качестве escape-символов в LOLCODE, и любое значение после двоеточия приобретает особое значение.
-
🙂 — Закрывающая скобка после двоеточия представляет новую строку (\ n)
-
:> — Закрывающая угловая скобка после двоеточия представляет вкладку (\ t)
-
: o — Символ «o», следующий за двоеточием, представляет колокол (звуковой сигнал) (\ g)
-
: « -» после двоеточия представляет буквальную двойную кавычку («)
-
:: — двоеточие, следующее за двоеточием, представляет собой одно буквенное двоеточие (:)
🙂 — Закрывающая скобка после двоеточия представляет новую строку (\ n)
:> — Закрывающая угловая скобка после двоеточия представляет вкладку (\ t)
: o — Символ «o», следующий за двоеточием, представляет колокол (звуковой сигнал) (\ g)
: « -» после двоеточия представляет буквальную двойную кавычку («)
:: — двоеточие, следующее за двоеточием, представляет собой одно буквенное двоеточие (:)
пример
HAI 1.2 I HAS A VAR3 ITZ A YARN VAR3 R "XYZ" VISIBLE VAR3 KTHXBYE
Приведенный выше код производит следующий вывод при исполнении —
sh- 4.3$ lci main.lo XYZ
Bukkit
Этот тип представляет массив. Он имеет именованные слоты, которые могут содержать переменные или функции. BUKKIT может быть объявлен следующим образом —
BTW declaration of the BUKKIT I HAS A [object] ITZ A BUKKIT BTW creating a variable in a slots [object] HAS A [var] ITZ [value] BTW creating a function inside the BUKKIT HOW IZ [object] [function name] (YR [argument1] (AN YR [argument2] (AN YR [argument3] ...))) [function code] IF U SAY SO
Функция внутри BUKKIT может также обращаться к переменным и другим функциям BUKKIT, используя ME’Z [var] или ME IZ [имя функции] (YR [аргумент1] (AN YR [аргумент2] (AN YR [аргумент3] … ))) МКАЙ.
пример
HAI 1.2 I HAS A VAR6 ITZ A BUKKIT BTW DECLARING AN ARRAY VAR6 HAS A VAR7 ITZ "DOGE" BTW VAR7 IS A STRING VARIABLE THAT IS INSERTED INTO ARRAY VAR6 VISIBLE VAR6'Z VAR7 BTW GET THE ELEMENT OF ARRAY KTHXBYE
Это вывод, который вы найдете при запуске приведенного выше кода —