Lua神奇之旅~~lua中的变量

对于脚本语言lua,它采用的是自动内存管理机制,所以使用时无需考虑内存的释放和分配,直接用即可

他的变量类型为以下8种:

nil  nil是一种特殊的类型,它只有一个值nil , 主要功能就是为了区别lua中其他的值,Lua中的对于他的定义是一种“无效值”,类似于C++中的NULL

boolean  其实就是传统的布尔类型,其类型包含的值有2个 ,显而易见的: falsetrue  ,不过值得注意的是,在lua中的条件值 “真”和“假” 却不仅仅限于 false 和 true , 在lua中除了 false 和 nil ,其他所有的值都将被认作 , 而 false 和 nil 都将会被认作是

number   实数类型,其实说白了就是C++ 中的double类型,一个双精度浮点数。

string  字符串类型,lua中的字符统一采用8位字符编码,其实类似于C++中的string 类型,特点是这个字符串非常高效,在lua中处理100K或1M的字符串很正常
字面字符串需要一对 “” 或 ‘’ 来界定 :例如  a = "string"

顺便说一句,lua中支持转义字符序列,说白了就是‘\n’等于 回车 这种,具体的定义如下表:

            

\a
响铃
\b
退格
\f
提供表格
\n
换行
\r
回车
\t
水平tab
\v
垂直tab
\\
反斜杠
\"
双引号
\'
单引号
还可以用  \数字 将其转化为对应的 字符 , 其实类似于C++中的ASCLL编码

还有lua中的字符串连接可以通过 .. 来实现  ,样例: str = "aaaa".."bbb"

table 表类型,类似于C++中的字典,允许以类似于键值对的方式来索引值

table的声明总是通过构造式{} 来实现 , 样例:  b = {}

然后用法嘛!,就放荡多了,分别为
a[x] = 10

a.x = 10

a["x"]= 10

附注:上面2式是等价的,或者说 a.x = a["x"]

键的类型可以是 数值或者是字符串

顺便说一句 table的数值索引默认为 1


function  函数类型

在lua中函数是“第一类值”,也就是基础类型,这些函数可以储存在变量中,并可以被随意赋值给其他变量,感觉有点像函数指针,说白了,我们定义的函数变量其实都是一个函数指针,其值默认为我们声明的函数,我们通过常规的赋值来讲这些函数赋给其他的变量,对于lua中函数的调用方法与C++中一致,直接用就对了~~

顺便说一句,由于lua是弱类型,所以无法显式地声明返回值类型,任何函数都可以选择接收返回值,如果该函数本身不返回值的话,则默认返回的是nil

编写样例如下:

function Main()					
	 		
end

Main = function()

end

上面2种写法等价

a = Main()

userdata
   该类型可以将任意的c语言数据存储到lua变量中,但是只能进行赋值和相等性测试

thread lua中的线程变量类型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章