LUA学习笔记(第5-6章)
来源:互联网 发布:曾仕强预言2035知乎 编辑:程序博客网 时间:2024/05/23 00:26
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 = arr[1]maxPos = 1for i=1,#arr doif arr[i] > maxValue thenmaxValue = arr[i]maxPos = iendendreturn maxPos, maxValueendprint(getMax{20, 50, 10, 40, 30})
unpack函数
print(unpack{20, 50, 10, 40, 30})
变长参数
function add( ... )local s = 0for i,v in ipairs{ ... } dos = s + vendreturn sendprint(add(1, 2, 3, 4))
返回所有实参
function add( ... )return ...endprint(add(1, 2, 3, 4))
通常一个函数在遍历其变长参数时只需要使用表达式{ ... }
但是变长参数中含有nil则只能使用函数select了
select("#", ...)返回所有变长参数的总数,包括nil
print(#{1, 2, 3, 4, 5, nil}) -->5
print(select("#", 1,2,3,4,5,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)endw = 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) doprint(v.name)end
0 0
- LUA学习笔记(第5-6章)
- LUA学习笔记(第1-4章)
- LUA学习笔记(第18-20章)
- 《Lua程序设计[第二版]》第5,6章笔记
- Lua 笔记(第一天)
- Lua学习笔记-第四章
- Lua学习笔记5-循环
- LUA学习笔记(1)
- Lua学习笔记(一)
- Lua学习笔记(一)
- Lua学习笔记(二)
- Lua学习笔记(三)
- Lua学习笔记(四)
- Lua学习笔记(五)
- Lua学习笔记(六)
- Lua学习笔记(七)
- Lua学习笔记(八)
- Lua学习笔记(九)
- malloc,realloc,calloc的用法及区别
- linux 下之paste简单用法
- 数据类型/变量
- SQLite数据库使用小结
- 设计一套缓存框架需要关注的要素
- LUA学习笔记(第5-6章)
- jenkins 入门教程(中)
- C++STL之string详讲
- 股票K线图
- 单点度限制最小生成树存代码
- iOS开发的22个诡异技巧
- Android快速屏幕尺寸适配 快速生成 res/dimens.xml
- 在centOs7虚拟机上安装vmware-tools时的报错解决
- hd 2037 今年暑假不AC(sort+结构体+贪心)