Lua.1 lua的类型与变量

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)





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值