一、Hello World
print("Hello World")
二、注释
--表示注释
print("--print表示控制台输出")
--[[
这样表示多行注释
--]]
---[[
小技巧:开头处多加一个-表示,取消注释
--]]
三、变量
1、变量的数据类型,取决于赋值的类型
2、多变量的同时赋值,类型也可以不一致
--默认全局变量,变量类型无需声明
a = 1
print(a) --输出 1
--local 局部变量、私有变量
local b = 2
print(b) --输出 2
--多变量的同时赋值,类型也可以不一致
a,b,c = 1,false,"c"
print(a,b,c) --输出 1 false c
a,b = 1,false,"c"
print(a,b) --输出 1 false
a,b = 1
print(a,b) --输出 1 nil
四、nil
nil 删除作用,内存中销毁
a = 1
print(a) --输出 1
--置空, 不要某个对象(删除时),直接nil
a = nil
print(a) --输出 nil
--nil 删除作用,内存中销毁
tab = {key1 = "a",key2 = 10}
print(tab.key1)
print(tab.key2)
tab = nil;
print(tab.key1)--这里报错,为什么
print(tab.key2)--因为nil,tab对象已经在内存中被删除了
五、数据类型
Lua 中有 8 个基本类型分别为:
nil、boolean、number、string、userdata、function、thread 和 table。
thread(线程):
在 Lua 里,最主要的线程是协同程序(coroutine)
userdata(自定义类型):
userdata 是一种用户自定义数据,用于表示一种由应用程序或 C/C++ 语言库所创建的类型,可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。
print(type("Hello world")) --string
print(type(print)) --function
print(type(3.1415926)) --number
print(type(true)) --boolean
print(type(nil)) --nil
print(type(type)) --function
print(type(type(a))) --此时 a 没有定义,所以是nil类型,type(nil)的type()是string
print(type( {} )) --table
六、Boolean
false和nil 都是false,其他都是true
if false or nil then
print("false 和 nil 至少有一个是 true") --输出
else
print("false 和 nil 都是false")
end
if 1 then
print("number 是 true") --输出
else
print("number 是 false")
end
if "s" then
print("string 是 true") --输出
else
print("string 是 false")
end
七、Number
整数、小数、科学计数法 都是number
--e代表10 +1代表1次方 -1代表-1次方
print(type(2)) --number
print(type(2.2)) --number
print(type(0.2)) --number
print(type(2e+1)) --number
print(type(0.2e-1)) --number
print(type(7.8263692594256e-06)) --number
七、转义字符
--[[
\a 表示响铃
\b 表示退格
\f 表示提供表格
\n 表示换行
\’表示 ’
\” 表示 “
\r 表示回车
\\ 表示\
\t 表示水平Tab,一个制表转义符(Tab)
--]]
print("xxx\ayyy")
print("xxx\byyy")
print("xxx\fyyy")
print("xxx\nyyy")
print("xxx\ryyy")
print("xxx\tyyy")
print("今天天气好晴朗处处好风光。。\b")