函数
这一章我们介绍一下lua中函数的声明,其实函数这东西我们每个人都接触过,就像我们初中高中学的一次函数 ,二次函数是一样的。举个简单的例子吧,目前欧元汇率和人民币汇率的比例是1欧元换7.2人民币,那我们手里有100欧元能换多少人民币呢?如果是1000欧元呢?遇到这种问题的时候,我们就需要找到一个规律,然后把他写成一个函数,输入是欧元,输出是人民币就好了,这个过程其实就是数学建模的过程。于是我们可以很轻松的想到 y = 7.2x 这个函数。 x就代表的是输入(人民币), y代表的是输出的结果(欧元)。我们把这个函数用lua表示出来如下:
y = function(x)
return 7.2*x
end
在这个函数中 x 被称为参数,7.2*x被称为返回值,当然一个函数可以没有参数,也可以没有返回值, 我们可以试试 y(10),结果是72.0。也就是说10欧元就是72块rmb。虽然这个程序是对的,但是对于程序员来说y,x紧紧是一个符号没有实际意义,别人看到了也不会明白这个函数是什么意思。所以要养成好的习惯,写好注释,变量名,函数名也要有一定意义,为日后维护自己的程序省去很多麻烦。
--this is a function for money exchange between rob and euro
rmb2Euro = function(rmb)
return rmb*7.2
end
这样写一目了然这个函数是干什么用的。
二.控制结构
- if条件语句
--简单if条件语句
if (布尔表达式) then
--todo
end
--复杂if条件语句
if (布尔表达式) then
--todo
elseif (布尔表达式) then
--todo
elseif (布尔表达式) then
--todo
else
--todo
end
例:
--deepFreeze是一个布尔变量
--这个函数判读法师深结是不是在冷却中
function isDeepFreezeCD(deepFreeze)
if(deepFreeze) then
return true
end
return false
end
2.while语句
while语句在循环重复进行一些工作时候用到的,具体语法如下:
--当布尔表达式值为false的时候 循环结束
while (布尔表达式)do
--todo
end
在lua中 do/while语句用 repeat/until语句代替
repeat
--todo
until(布尔表达式)
while语句和repeat/until的区别就是后者会执行最少一次循环,而while有可能不执行循环直接跳出。
- for循环
for i = startValue,endValue,stepValue do
--todo
end
for i = 0 ,10,1 do
print(i)
end
结果会输出从1~10。