Lua 有趣的语法特性
- 使用函数作为函数返回
- table关联数组的多种访问形式
- table计数的问题
- 函数其实也是变量
- local 和 global 函数在调用的时候会有所区别
- 可变参数(5.1)
- 参数默认值
- 三元表达式
- 不同变量类型比较时不存在自动转换
- 只有
nil
和false
是假,0
,{}
,""
都是真 - for循环
- 对象方法的调用
- 函数多个返回值
- 泛型调用和
unpack
- 高级函数 和 函数的本质
- 多行字符串
使用函数作为函数返回
1 | function (t) |
table关联数组的多种访问形式
1 | u = {name=rming,age=25,hello='hi~'} |
table计数的问题
1 | -- 一个nil元素的时候,碰到nil就停止计数了 |
函数其实也是变量
1 | s = {p=print} |
local 和 global 函数在调用的时候会有所区别
1 | local f |
可变参数(5.1)
1 | local f = function( ... ) |
参数默认值
1 | local function ff(name,age) |
三元表达式
1 | -- a==b ? 'yes' : 'no' |
不同变量类型比较时不存在自动转换
1 | print('0'==0) |
只有 nil
和 false
是假,0
,{}
,""
都是真
1 | > if nil then print('true') else print('false') end |
for循环
1 | -- print all values of array 'a' |
对象方法的调用
1 | > a={p=print} |
函数多个返回值
1 | > s,e=string.find('this is a string ', 'string') |
泛型调用和 unpack
1 | > f = string.find |
高级函数 和 函数的本质
Lua中的函数是带有词法定界的第一类值().
1 | -- 高级函数 |
多行字符串
1 | local page = [[ |