当前位置: 首页 > 文档资料 > LOLCODE 中文教程 >

Types

优质
小牛编辑
133浏览
2023-12-01

LOLCODE旨在测试编程语言设计的界限。 它是一种深奥的编程语言,受到互联网上有趣事物的启发。 本章将帮助您了解LOLCODE类型。

类型 (Types)

目前,LOLCODE中的变量类型是 -

  • 字符串(YARN)
  • integers (NUMBR)
  • floats (NUMBAR)
  • and booleans (TROOF)
  • Arrays (BUKKIT)

在LOLCODE中,变量类型由编译器动态处理。 如果变量没有初始值,则称为无类型(在LOLCODE中称为NOOB)。

在LOLCODE中声明和使用不同类型的语法如下所示 -

创建任何数据类型的变量

I HAS A <VARIABLE> ITZ A <DATA TYPE>

创建变量并为其赋值

I HAS A <VARIABLE> ITZ <EXPRESSION<

为已创建的数据类型分配值

<VARIABLE> R <EXPRESSION>

Untyped (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,而真/假值分别称为WIN/FAIL。 所有未初始化的值(如空字符串(“”)或空数组都将转换为FAIL。 所有其他初始化值评估为WIN。

例子 (Example)

HAI 1.2
I HAS A VAR3 ITZ A TROOF
VAR3 R "FAIL"
   VISIBLE VAR3
KTHXBYE

执行上述代码时,您可以看到以下输出 -

sh-4.3$ lci main.lo
FAIL

Numerical Types (NUMBR)

在LOLCODE中,NUMBR代表整数。 任何数字序列都被视为NUMBR,除非它在序列之间的任何位置出现小数。 要使任何数字为负数,可以在前面加一个连字符( - )表示负数。

例子 (Example)

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返回,不带任何小数。

Strings (YARN)

在LOLCODE中,包含字符串的值,即字符串文字(YARN)应以双引号(“”)开头和结尾。

任何东西都可以写在字符串中,如空格,逗号,句号,感叹号或任何其他符号。 缺少任何单引号的字符串可能会导致错误。 冒号在LOLCODE中用作转义字符,冒号后的任何值都具有特殊含义。

  • :) - 冒号后的右括号表示换行符(\ n)

  • :》 - 冒号后面的结束尖括号代表一个标签(\ t)

  • :o - 冒号后面的'o'字符代表铃声(嘟嘟声)(\ g)

  • :" - 冒号后面的一个”表示文字双引号(“)

  • :: - 冒号后面的冒号代表单个字面冒号(:)

例子 (Example)

HAI 1.2
I HAS A VAR3 ITZ A YARN
VAR3 R "XYZ"
   VISIBLE VAR3
KTHXBYE

上面给出的代码在执行时产生以下输出 -

sh-
4.3$ lci main.lo 
XYZ

BUKKIT

此类型表示一个数组。 它命名了slot,它可以包含变量或函数。 可以通过以下方式声明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内的函数也可以通过使用ME'Z [var]或ME IZ [函数名](YR [argument1](AN YR [argument2](AN YR [argument3] ...)来访问BUKKIT的变量和其他函数。 )))MKAY。

例子 (Example)

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

这是您在运行上面给出的代码时会找到的输出 -

sh-
4.3$ lci main.lo 
DOGE