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

Lua.1 lua的类型与变量

2016-03-07 19:12 453 查看

Lua.1 lua的类型与变量

lua的变量

lua的变量命名与其他语言大致相似,有两点

1. 由数字,字母,下划线构成

2. 不可以使用数字开头

例如:

m n myBook _myiPhone _pc001 _00 _VERSION

注意:

    1. _00 这种下划线跟数字的变量不建议写

    2. _VERSION 下划线加大写字母的写法多用于保留字,尽量避免

局部变量

局部变量用local 来声明

例如:

local bag

local cup

local telNum = 110

全局变量

只需要给一个变量赋值,那么他就是全局变量

例如:

pcName = "Dell"

car = "Benz"

ID = 001

这些就是全局变量了

注释

单行注释,用 --

-- local num = 0

-- num = 2

多行注释,用 --[[ ]]包起来

--[[

function add(x,y)

    return x+y

end

]]

Lua的类型与值

lua是一门动态语言,也称为脚本语言,它区别于我们传统的编译型语言,它是依赖于解释器来执行的,这里我们不做过多介绍。

lua的类型总共分为如下几类

string => 字符串

number => 数字

function => 方法(C/C++程序员可能更习惯称之为函数)

boolen => 布尔值,只有true和false

nil => 空,值只有一个是nil

table => 表,这是Lua最具特点的一个类型,许多特性都依赖于它

thread => 线程

userdata => 自定义类型

函数type可以根据一个值返回对应的类型,例如

type("hello") string

type(1+1) number

type(print) function

type(true) boolean

string类型

字符串需要用用单引号或者双引号来作为界定符

a = "this is a string "

b = "do you konw ?"

c = 'i am xiaoming'

d = 'php is the best language '

我们用系统函数print来把他们打印出来

print(a)

print(b)

print(c)

print(d)

字符串可以用 .. 来连接

a = a .. b

print(a)

a = a .. c .. d

print(a)

还可以连接number类型,大家可以试试

number类型

lua中没有 int double long short float这些类型,number类型表示一个实数,

一下表示都是可以的

num1 = 1

num2 = 1.0

num3 = 3e+1

table类型

官方解释table是一个关联数组,即具有特殊索引方式的数组(associative array)。

1.它不仅可以用整数来索引,也可以用字符串或其他类型的值来索引(除了nil)

2.没有固定大小,可以动态的添加值进来

3.table可以模拟出各种数据结构,包括类与对象都可以模拟出来

4.table不是值也不是变量,它是对象,用C++的解释就是它是内存中的一片区域,而变量只是指向它的指针

声明一个table最简单的办法就是用{}来表示

a = {} -- 声明了一个空table,将a指向这个表

a[1] = 1 -- 以整数为索引,值为1

a["sex"] = "man" -- 以字符串为索引

print(a[1]) -- 1

print(a["sex"]) -- man

table间的赋值只是引用关系

b = a

b[1] = 2

print(a[1]) -- 2

b[1] = a[1] + 1

print(a[1]) -- 3

由上面可以看到,a和b是共享一个table的,它们只是指向一个table的引用而已

function类型

函数在lua里面是第一类型的值,写过其他脚本语言的人可能不太陌生,但是像我

一样从C++这种语言转过来的会觉得非常别扭,居然可以这么用,其实大家想想,

C++里面不也是有函数指针吗,只是没有这么方便

function log()

    print("log")

end

log()

我们可以把函数赋值给一个变量

logVar = log

logVar()

甚至可以当做参数传递

function log(msg)

    print(msg)

end

function main(log)

    log("main function")

end

main(log)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: