tab1 = {key1 = "val1",key2 = "val2","val3"}
for k,v in pairs(tab1) do
print(k .. "--" .. v)
end
--[[
对于全局变量和table nil还有个删除作用
--]]
tab1.key1 = nil
for k,v in pairs(tab1) do
print(k .. "--" .. v)
end
tab2={"1","2","3"}
for k,v in pairs(tab2) do
print(k .. "-" .. v)
end
print("=====")
tab2[1] = nil
for k,v in pairs(tab2) do
print(k .. "-" .. v)
end
--[[
nil 做比较时应该加上双引号 ""
--]]
print(type(x)) --nil
print(type(x) == nil) -- false
print(type(x) == "nil") -- true
--[[
boolean类型只有两个可选值:true(真)和false(假),Lua把false和nil看作是"假",其他都为"真"
--]]
print(type(true))
print(type(false))
print(type(nil))
if false or nil then
print("至少有一个是true")
else
print("false 和 nil都为false !")
end
--[[
string类型字符串由一对双引号或单引号来表示
可以用 两个方括号来标识“一块”字符串
--]]
string1="this is string1"
string2="this is string2"
html=[[
<html>
<header></header>
<body>
<a href="http://www.baidu.com/">hello</a>
</body>
</html>
]]
print(html)
--[[
对一个数字字符串上进行算术操作时,lua会尝试将这个数字字符串转换为数字
--]]
print("2"+6)
print("2"+"6")
print("2"*"6")
-- print("error"+1) 报错 字符串链接使用的是 ..
print(123 .. 456) -- .. 两边保留空格
--[[
使用 # 来计算字符串的长度 , 放在字符串前面 , 如下实例
--]]
len = "www.baidu.com"
print(#len)
print(#"www.baidu.com")
--[[
lua里 table的创建是通过 构造表达式 来完成,最简单的构造表达式是{},用来创建一个空表
也可以在表里添加一些数据,直接初始化表
local table1 = {}
local table2 = {"apple","pear","orange","grape"}
lua中的表 table 其实是一个关联数组 , 数组的索引可以是数字或者字符串
--]]
a = {}
a["key"] = "value"
key=10
a[key]=22
a[key] = a[key] + 11
for k,v in pairs(a) do
print(k .. ":" .. v)
end
--[[
key:value
10:33
不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1 开始。
--]]
local tb1={"apple","pear","orange","grape"}
for key,val in pairs(tb1) do
print("Key",key);
end
--[[
Key 1
Key 2
Key 3
Key 4
table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。
--]]
a3={}
for i=1,10 do
a3[i]=i
end
a3["key"]="val"
for k,v in pairs(a3) do
print(k .. ":" .. v)
end
print(a3["key"])
print(a3["none"]) -- nil
--[[
function 在lua中函数可以被看作是 第一类值 , 函数可以存在变量里
--]]
function factorial1(n)
if n == 0 then
return 1
else
return n*factorial1(n-1)
end
end
print(factorial1(5)) --120
factorial2=factorial1
print(factorial2(5)) --120
--[[
function 可以以匿名函数(anonymous function)的方式通过参数传递:
--]]
function testFun(tab,fun)
for k,v in pairs(tab) do
print(fun(k,v))
end
end
ttb={key1="val1",key2="val2"}
testFun(ttb,function(key,val)
return key .. "=" .. val
end)
--[[
key1=val1
key2=val2
--]]
Lua数据类型
猜你喜欢
转载自my.oschina.net/LucasZhu/blog/1817438
今日推荐
周排行