博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LUA学习笔记(第18-20章)
阅读量:3528 次
发布时间:2019-05-20

本文共 1917 字,大约阅读时间需要 6 分钟。

数学库

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 * 10endprint("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 * 10endprint(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])	endends = {
{"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, " ")endlocal s = {
{"a", "nice"}, "and", {"long"}, {"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, 1, 3, 4}
table.sort( arr, sortfunction)
print(unpack(arr))
lua中无法对table的索引排序,只能将key保存在数组,再对数组排序。
lines = {	luaH_set = 10, 	luaH_get = 24, 	luaH_present = 48,	}arr = {}for key in pairs(lines) do	arr[#arr + 1] = keyendprint(unpack(arr))table.sort(arr)print(unpack(arr))

转载地址:http://eifhj.baihongyu.com/

你可能感兴趣的文章