Учебники

Lolcode — Типы

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 (т.е. типов, которые неинициализированы и не имеют никакого начального значения) приводит к нулевым значениям для всех других типов.

Чтобы определить нетипизированную переменную, просто объявите переменную и присвойте значение, как показано в этом примере —

Live Demo

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.

пример

Live Demo

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, если только она не имеет десятичной дроби, встречающейся где-либо между последовательностями. Чтобы сделать любое число отрицательным, ему может предшествовать дефис (-), который обозначает отрицательное число.

пример

Live Demo

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)

: « -» после двоеточия представляет буквальную двойную кавычку («)

:: — двоеточие, следующее за двоеточием, представляет собой одно буквенное двоеточие (:)

пример

Live Demo

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] … ))) МКАЙ.

пример

Live Demo

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

Это вывод, который вы найдете при запуске приведенного выше кода —