您的位置:首页 > 编程语言 > Lua

Lua入门教程 2.类型与值

2016-06-03 19:42 323 查看

0x02

基础类型

Lua有总共8种基础类型:

nil

boolean

number

string

userdata

function

thread

table

e.g:

print(type("hello"))  -->string
print(type(2))  -->number
print(type(true)) -->boolean
print(type(print))  -->function
print(type(nil))  -->nil
print(type(type(x)))  -->string


1.nil(空)

这个类型只有一个值,主要功能是用于区别其他任何值

2.boolean(布尔)

有两个值 true 和 false,Lua将false和nil视为假,而除此之外都视为真

3.number(数字)

这个类型用于表示实数,Lua没有整数类型。Lua中的数字可以表示任何32位整数,而不会产生四舍五入的错误。

右边是数字常量的普通写法:

4      0.4       4.57e-3       0.3e12      5e+20


4.string(字符串)

Lua中的字符串通常表示一个字符序列,Lua的字符串是不可变的值。不能像在C中那样直接修改字符串的某个字符,而是应该根据修改要求来创建一个新的字符串

a = "hello world"
b = string.gsub(a, "hello", "good")
print(a)  --> hello world
print(b) --> good world


字符串的创建和释放由Lua本身的内存管理控制,无须担心

还可以用一对匹配的双括号来界定一个字母字符串,如:

page = [[
<html>
<head>
test
</head>
<html>
]]


Lua在对数字和字符串进行操作的时候会自动在字符串上应用算术操作,会尝试将字符串转换成一个数字:

print("10" + 1)  -->转换成数字
pritn("10 + 1")


也会在需要转换的地方进行向数字的转换:
print(10..20) --> 1020  ".." 是字符串连接符

tonumber函数用于将字符串转换为数字,如果尝试转换失败则会返回 nil  e.g tonumber(test)
#可以用于字符串长度的返回   e.g a = "haha" print(#a) -->4


5.table(表)

table类型实现了“关联数组“,是一种特殊索引方式的数组,不仅可以用整数来索引,也可以用字符串和其它类型来索引(除了nil)。table即不是值也不是变量,而是对象。

table是通过构造表达式创建。最简单的创建是{}

e.g
a = { }  --> 创建表
a["z"] = "ero" -->新条目,key:"z" val:"ero"
a[20] = "test" -->新条目,key:"20 val:"test"


获取值的方式:a[“z”] 或者 a.z(这种方式更加方便)

注:a.x和a[x]的区别,前者表示a[“x”],而后者表示以变量x的值来索引table

Lua的索引值习惯以1开始

Lua5.1中,长度操作符”#”用于返回一个数组或线性表的最后一个索引值

for i =1, #a do
print(a[i]) --a为一个字符串数组
end


6.function(函数)

函数也可以被储存在变量当中,可以当作参数传递,也可以在函数中返回。

变量

1.变量的初始化

Lua中的变量初始化是不用进行类型声明的,直接进行赋值操作即可:

a = 10
print(a)

func = print
func("Hello World") -->Hello World 这也是合法的


2.变量的销毁

直接将变量赋值为nil即可

hello = "hello world"
hello = nil --完成了销毁
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua