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

LUA学习笔记(第5-6章)

发布时间:2020-12-14 21:55:44 所属栏目:大数据 来源:网络整理
导读:x = a or b 如果a为真则x = a 如果a为假则x = b print(a .. b) 任何非nil类型都会被连接为字符串,输出 多重返回值 local s,e = string.find("Hello World","Wo") print(s .. " : " .. e) 自定义函数 function getMax(arr)local maxValue,maxPosmaxValue = a

x = a or b

如果a为真则x = a

如果a为假则x = b


print(a .. b)

任何非nil类型都会被连接为字符串,输出

多重返回值

local s,e = string.find("Hello World","Wo")
print(s .. " : " .. e)

自定义函数

function getMax(arr)
	local maxValue,maxPos
	maxValue = arr[1]
	maxPos = 1
	for i=1,#arr do
		if arr[i] > maxValue then
			maxValue = arr[i]
			maxPos = i
		end
	end
	return maxPos,maxValue
end

print(getMax{20,50,10,40,30})

unpack函数

print(unpack{20,30})

它接受一个数组作为参数,并从下标1开始返回数组的所有元素


变长参数

function add( ... )
	local s = 0
	for i,v in ipairs{ ... } do
		s = s + v
	end
	return s
end
print(add(1,2,3,4))

返回所有实参

function add( ... )
	return ...
end
print(add(1,4))

通常一个函数在遍历其变长参数时只需要使用表达式{ ... }

但是变长参数中含有nil则只能使用函数select了

select("#",...)返回所有变长参数的总数,包括nil

print(#{1,4,5,nil}) -->5
print(select("#",1,nil)) -->6


具名实参

函数调用需要实参表和形参表进行匹配,为了避免匹配出错,而使用具名实参。

例:

function Window( options )
	_Window(options.title,options.x or 0,options.y or 0,options.width,options.height,options.background or "white",options.border
			)
end

w = Window{x = 0,y = 0,width = 300,height = 200,title = "Lua",background = "blue",border = true
		}

深入函数

LUA中函数与所有其他值一样都是匿名的:当讨论一个函数时,实际上是在讨论一个持有某函数的变量。

a = {p = print}
a.p("Hello")
print = os.date()

a.p(print)

一个函数定义实际就是一条语句(赋值语句)

将匿名函数传递给一个变量

foo = function() return "Hello World" end
print(foo())

等价于我们常见的

function foo()

return "Hello World"

end

匿名函数

arr = {
	{name = "A",score = 99},{name = "B",score = 95},{name = "C",score = 96},{name = "D",score = 97},}

table.sort(arr,function (a,b) return (a.name < b.name) end)
for i,v in ipairs(arr) do
	print(v.name)
end

(编辑:李大同)

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

    推荐文章
      热点阅读