📜  Lolcode-变量

📅  最后修改于: 2020-11-03 06:59:26             🧑  作者: Mango


与其他任何编程语言一样,LOLCODE允许您定义各种类型的变量。本章将使您熟悉在LOLCODE中使用变量。

变量范围

变量的作用域对于函数或程序块而言是局部的,即,不能在同一程序的任何其他作用域中调用在一个作用域中定义的变量。变量只有在声明后才能访问。

请注意,LOLCODE中没有变量的全局范围。

命名约定

变量名称通常称为标识符。以下是在LOLCODE中命名变量的一些约定-

  • 变量标识符可以全部为大写字母或小写字母(或两者的混合)。

  • 它们只能以字母开头,然后可以跟着其他字母,数字和下划线。

  • LOLCODE在命名变量时不允许使用空格,破折号或其他符号。

  • 变量标识符区分大小写。

这是LOLCODE中变量的有效名称和无效名称的一些规则-

  • 名称应始终以字母开头。例如,名称,名称有效。

  • 变量名称不能以数字开头。例如, 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".

变量的声明和分配

为了声明变量,LOLCODE提供了关键字“ I HAS A”,后跟变量名。您可以在下面找到用于声明变量的语法。

I HAS A VAR BTW VAR is empty now, You can use any name instead of var

要在同一条语句中为变量分配值,您可以在变量名称后加上“ ITZ”,然后给出要分配的值。使用以下语法为变量分配值-

 R 

VAR R "Green"         BTW VAR is now a YARN and equals "Green"
VAR R 30              BTW VAR is now a NUMBR and equals 30

您还可以使用以下语法同时声明分配变量-

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(例如,通过打印),会将输出截断为默认的2个小数位。

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程序中声明的所有变量都是局部变量,因此该语言没有任何变量的全局作用域。