变量
与任何其他编程语言一样,LOLCODE允许您定义各种类型的变量。 本章将使您熟悉在LOLCODE中使用变量。
变量范围
变量的作用域是函数或程序块的本地,即在同一程序的任何其他作用域中不能调用在一个作用域中定义的变量。 变量只有在声明后才能访问。
请注意,LOLCODE中没有全局变量范围。
命名约定
变量名称通常称为标识符。 以下是在LOLCODE中命名变量的一些约定 -
变量标识符可以是所有CAPITAL或小写字母(或两者的混合)。
它们只能以字母开头,然后可以跟随其他字母,数字和下划线。
在命名变量时,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 (Example 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 (Example 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 (Example 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>
例子 (Example)
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
例子 (Example)
I HAS A NAME ITS “TUTORIALS POINT”
例子 (Example)
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位小数。
例子 (Example)
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程序中声明的所有变量都是局部变量,并且在该语言中没有任何变量的全局范围。