Lua 教程 在线

2038Lua 数据类型

匿名函数可以在后续调用时再对其续写,如testfun(tab,abc)中abc定义为一个两参数的函数,在后边调用testFun(tab,function(key,val).....中续写具体函数。

-- function_test2.lua 脚本文件
function testFun(tab,abc)
    for k ,v in pairs(tab) do
        print(abc(k,v));
    end
end


tab={key1="val1",key2="val2"};
testFun(tab,
function(key,val)--匿名函数
    return key.."="..val;
end
);

我们还可以随时改变这个匿名函数如:

-- function_test2.lua 脚本文件
function testFun(tab,fan)
    for k ,v in pairs(tab) do
        print(fan(k,v));
    end
end


tab={key1="val1",key2="val2"};
testFun(tab,
function(key,val)--匿名函数1
    return key.."="..val;
end
)

tab2={key1="val3",key2="val4"};
testFun(tab2,
function(key,val)--匿名函数2
    return key.."+"..val;
end
)

输出:

key1=val1
key2=val2
key1+val3
key2+val4

发现一个问题输出结果的顺序是随机的,这个有待后续学习理解。

2037Lua 数据类型

运行时,Lua会自动在string和numbers之间自动进行类型转换,当一个字符串使用算术操作符时, string 就会被转成数字。

print("10"+ 1)     --> 11
print("10 + 1")  --> 10 + 1
print("hello"+ 1)    -- 报错 (无法转换 "hello")

反过来,当 Lua 期望一个 string 而碰到数字时,会将数字转成 string。

print(10 .. 20) --> 1020

.. 在Lua中是字符串连接符,当在一个数字后面写 .. 时,必须加上空格以防止被解释错。

2036Lua 基本语法

退出交互式编程的方法:

1、通过命令行的通用终止方法。

linux:Ctrl+D(发送退出信号)、Ctrl+C(强制中断)

2、输入

> os.exit()

2035Lua 基本语法

多行注释推荐使用 --[=[注释内容]=],这样可以避免遇到table[table[idx]]时就将多行注释结束了。

2034Lua 环境安装

Mac 上也可以通过 homebrew 安装,便于版本管理。

brew install lua