加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

LUA学习笔记(第18-20章)

发布时间:2020-12-14 21:55:42 所属栏目:大数据 来源:网络整理
导读:数学库 print(math.pi)--π print(math.huge)--Lua中表示的最大数字 --[[ 3.1415926535898 1.#INF ]] print(math.rad(90))--转换成弧度 print(math.deg(math.pi))--转换成角度 math.random()用于生成伪随机数 不带参数,它将返回【0,1]内均匀分布的伪随机实

数学库

print(math.pi)-->π
print(math.huge)-->Lua中表示的最大数字

--[[

3.1415926535898
1.#INF

]]

print(math.rad(90))-->转换成弧度
print(math.deg(math.pi))-->转换成角度


math.random()用于生成伪随机数

不带参数,它将返回【0,1]内均匀分布的伪随机实数

带参数n(整数),它将返回【1,n】内均匀分布的伪随机整数

带参数m,n(整数),它将返回【m,n】内均匀分布的伪随机整数

math.randomseed用于设置伪随机数生成器的种子数

math.randomseed(os.time())

math.randomseed(os.time())
for i=1,5 do
	print(math.random(6))
end

table库

table是Lua中唯一的数据结构。
初始化与打印输出
arr = {}
for i=1,10 do
	arr[i] = i * 10
end

print("the length of arr is " .. #arr)
for i,v in ipairs(arr) do
	print("arr[" .. i .. "] = " .. v)
end
lines = {luaH_set = 10,luaH_get = 24,luaH_present = 48}

for i,v in pairs(lines) do
	print(i,v)
end


插入
table.insert(数组,[位置],数据)
位置是可选的,不选择则插在数组末尾
当然在数组起始或中间插入,不是一个好的选择

删除
table.remove(数组,[位置])删除数组指定位置上的元素
位置同样是可选的,没有位置则从尾部删除。

连接
table.concat(数组,[分隔符],[起始位置],[终止位置])
arr = {}
for i=1,10 do
	arr[#arr + 1] = i * 10
end

print(table.concat(arr," : ",1,10))
遍历嵌套数组
function printer(arr)
	if type(arr) ~= "table" then
		print(arr)
		return
	end
	for i=1,#arr do
		printer(arr[i])
	end
end

s = {{"a","nice"},"and",{"long"},{"day"}}
--printer(s)
printer(s)
function printer(arr)
	if type(arr) ~= "table" then
		return arr
	end
	local res = {}
	for i=1,#arr do
		res[i] = printer(arr[i])
	end
	return table.concat(res," ")
end

local s = {{"a",{"day"}}

print(printer(s))

排序
table.sort( tablename,[sortfunction] )
sortfunction 可选。
sortfunction 有两个参数,如果希望第一个参数在排序结果中位于第二个参数面前,就应当返回true。
如果没有提供这个函数,sort就是用默认的小于操作。
arr = {10,20,50,30,40}
table.sort(arr)
print(unpack(arr))
默认从小到大排序
等价于:
function sortfunction(x,y)
if x < y then
return true
else
return false
end
end
arr = {2,5,3,4}
table.sort( arr,sortfunction)
print(unpack(arr))

lua中无法对table的索引排序,只能将key保存在数组,再对数组排序。
lines = {
	luaH_set = 10,luaH_present = 48,}

arr = {}
for key in pairs(lines) do
	arr[#arr + 1] = key
end

print(unpack(arr))
table.sort(arr)
print(unpack(arr))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读