开发手册 欢迎您!
软件开发者资料库

Lolcode - 类型

Lolcode类型 - 从简单和简单的步骤学习Lolcode从基本到高级概念,包括简介和环境设置,语法,变量,类型,操作符,输入/输出,语句和流程控制,循环,函数,异常处理,更多例子。

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

类型

目前,LOLCODE中的变量类型为 :

  • 字符串(YARN)

  • 整数(NUMBR)

  • 浮动(NUMBAR)

  • 和布尔(TROOF)

  • 数组(BUKKIT)

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

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

创建任何数据类型的变量

I HAS A  ITZ A 

创建变量并为其赋值

I HAS A  ITZ 

为已创建的数据类型指定值

 R 

无类型(NOOB)

无类型数据类型(称为NOOB),无法转换为任何其他类型除了进入TROOF数据类型.将NOOB隐式转换为TROOF使变量失败.之后对NOOB的任何操作都会导致错误.

显式转换NOOB数据类型(即未初始化且没有任何初始值的类型)变量结果为零值对于所有其他类型.

要定义一个无类型变量,只需声明一个变量并分配一个值,如本例所示 :

HAI 1.2I HAS A VAR3VAR3 R "ANYVALUE"VISIBLE VAR3BTW Or declare in same lineI HAS A VAR4 ITZ 44VISIBLE VAR4KTHXBYE

当你运行以上程序,你会发现以下结果 :

sh-4.3$ lci main.lo ANYVALUE44

布尔值(TROOFS)

在LOLCODE中,布尔值有两种类型. BOOLEAN通常有两个值 -  true和false.但是,在LOLCODE中,布尔值称为TROOF,而真/假值分别称为WIN/FAIL.所有未初始化的值(如空字符串("")或空数组都将转换为FAIL).所有其他初始化值评估为WIN.

示例

HAI 1.2I HAS A VAR3 ITZ A TROOFVAR3 R "FAIL"   VISIBLE VAR3KTHXBYE

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

sh-4.3$ lci main.loFAIL

数值类型(NUMBR)

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

示例

  HAI 1.2 我有一个VAR3 ITZ A NUMBR  VISIBLE VAR3  KTHXBYE

上面的代码在运行它时显示以下结果 :

HAI 1.2I HAS A VAR3 ITZ A NUMBR   VISIBLE VAR3KTHXBYE

与NUMBR类似,LOLCODE有另一种数据类型,表示许多编程语言中的小数或浮点数.在LOLCODE中,NUMBAR是包含一个小数点的浮点数.将NUMBAR转换为NUMBR会截断浮点数的小数部分,并将其作为NUMBR返回,不带任何小数.

字符串(YARN)

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

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

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

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

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

  • :" :  "跟随冒号表示文字双引号(")

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

示例

HAI 1.2I HAS A VAR3 ITZ A YARNVAR3 R "XYZ"   VISIBLE VAR3KTHXBYE

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

  sh-  4.3 $ lci main.lo  XYZ

BUKKIT

此类型代表一个数组.它已命名为slot可以包含变量或函数.可以通过以下方式声明BUKKIT :

  BTK声明BUKKIT 我有一个[对象] ITZ一个BUKKIT BTW创建一个变量插槽中的 [object]有一个[var] ITZ [value] BTW在BUKKIT内创建一个函数 HOW IZ [object] [function name](YR [argument1]( AN YR [argument2](AN YR [argument3] ...))) [功能代码] 如果你说SA $ SO

BUKKIT内的函数也可以通过使用ME'Z [var]或ME IZ [函数名](YR [argument1](AN YR [argument2](AN YR [argument3]]来访问BUKKIT的变量和其他函数. .)))MKAY.

示例

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 ARRAYKTHXBYE

这是你会发现的输出当你运行上面和下面给出的代码时;

  sh-  4.3 $ lci main.lo  DOGE