对相关数据类型的整理
--单行注释
--[[
这里是多行注释
随意写
]]
print(">>>>>>>>>数据类型<<<<<<<<<<<")
--[[
Lua中共有8种数据类型
nil
boolean
number
string
userdata
function
thread
table
]]
-- type
-- 定义变量, 不需要指定变量的类型
-- 语句后面的;可有可无
print(type(a)) --> 如果变量没有被定义过, 类型为nil
a = 10 --> a的类型由=后面自动推断
print(type(a))
a = "张三"
print(type(a))
a = print
print(type(a))
a(type(a))
print(">>>>>>>>>boolean<<<<<<<<<<<")
--[[
1.bool类型取值范围: true false
2.在Lua中, bool类型可以与任意类型进行比较
3.在Lua中, 只有nil 和 false 表示假, 其他均为真
4.在if语句判断中, 除了false和nil, 其他均为真
]]
a = false
if (a)
then
print("真")
else
print("假")
end
print(">>>>>>>>>number<<<<<<<<<<<")
--[[
1.Lua中不分 float,int,double,decimal, 所有数值都叫number
2.Lua中数值的小数部分和整数部分的位数可以自己定义.
Lua格式化输入/输出
]]
a = 4
a = 0.4
a = 2.5e+3
a = 2.5e15 * 2e5
print(a)
print(">>>>>>>>>string<<<<<<<<<<<")
--[[
1.Lua中每个字符最多占位8个字节,常见的UTF8字符集占1-4字节
2.Lua中的字符串不可变, 内存自动管理
]]
--1.定义
a = "Lua"
print(a)
--2.替换
a = "one string"
b = string.gsub(a, "one", "two")
print(a)
print(b)
--3.字符串长度
print(string.len(a))
--4.Lua字符串的转义
-- \a \b \n \t \\ \" \' \[ \]
print("\a")
print("abc\b")
--5.使用[[]]可以拼接任意长度的字符串
a = [[ select * from table where a = b
insertinto ..... ]]
print(a)
--6.有关字符和整形的运算
print("10 " + 1) --> 11.0,
-- 如果字符串遇到+-*/等运算符, 会试图将字符串转换成number
-- 如果转换不成功, 则报错
-- print("a10" + 1) --> 是自动转换的
print("20" * "40")
--7.字符串的拼接,使用..拼接, 一个好的习惯实在..前后加空格
print("abc" .. "def")
-- print("a" + "b")
print(10 .. 20) --> 数值的.., 将数值转为字符串
--8.比较, 字符串和number比较, 报错
-- 字符串和number判等, 永远为假
print("10" == 10)
-- 由数值转为字符串
print(tostring(10) == "10")
-- 由字符串转为数值
a = tonumber("10")
if (a == nil)
then
print("转换失败")
else
print(a)
end
print(10 .. "" == "10")
print("10", "20", "30", 40, type(print))
print(">>>>>>>>>function<<<<<<<<<<<")
--[[
1.lua中, function作为一个值类型, 可以当做普通的变量来使用
]]
-- 定义 ... 表示可变参数
function function1( ... )
print("HelloWorld")
end
function1()
function1(a, b, c)
function function2( x )
print(type(x))
end
function2("abc")
function2(10)
function2(function2)
print(">>>>>>>>>Table<<<<<<<<<<<")
--[[
1.Lua中的Table相当于C#中的List,数组容器, 字典,哈希表等等
]]
-- table的定义
a = {}
print(">>>>>>>>>Table数组<<<<<<<<<<<")
a = {1,2,3,4,5}
a = {"张三", "李四", "王五"}
a = {"张三", 18, "未婚", true}
print(">>>>>>>>>Table字典<<<<<<<<<<<")
a = {
["姓名"] = "张三",
["年龄"] = 18,
["政治面貌"] = true
}
print(">>>>>>>>>Table混合使用<<<<<<<<<<<")
a = { 1,
2,
3,
true,
["姓名"] = "张三",
18,
["年龄"] = 18,
"志玲",
["政治面貌"] = true
}
print(">>>>>>>>>table的操作<<<<<<<<<<<")
a = {["x"] = 10, 15, ["y"] = 20, ["z"] = 30}
print(a["x"])
print(a[x])
print(a[1])
print(a.x)
print(a.z)
print(">>>>>>>>><<<<<<<<<<<")
a.m = 88
a.m = 99 --> 无则创建, 有则修改
for k,v in pairs(a) do
print(k,v)
end
print(">>>>>>>>><<<<<<<<<<<")
a = {}
for i=-5,5 do
a[i] = i
end
for i=-5,5 do
print(a[i])
end
for k,v in pairs(a) do
print(k,v)
end