[Lua快速了解一下]Lua的函数

-recurrsive

function fib(n)
  if n < 2 then return 1 end
  return fib(n - 2) + fib(n - 1)
end

-closure

示例一

function newCounter()
    local i = 0
    return function()     -- anonymous function
       i = i + 1
        return i
    end
end
 
c1 = newCounter()
print(c1())  --> 1
print(c1())  --> 2
 

示例二

function myPower(x)
    return function(y) return y^x end
end
 
power2 = myPower(2)
power3 = myPower(3)
 
print(power2(4)) --4的2次方
print(power3(5)) --5的3次方

-函数的返回值

可以一条语句上赋多个值

name, age, bGay = "haoel", 37, false, "haoel@hotmail.com"

因为只有3个变量,所以最后一个被舍去

函数可以返回多个值

function getUserInfo(id)
    print(id)
    return "haoel", 37, "haoel@hotmail.com", "https://coolshell.cn"
end
 
name, age, email, website, bGay = getUserInfo()

这里没有传id进去,所以函数中的id输出为nil,而且返回的值里也没有bGay的值,所以bGay也是nil

-局部函数

函数前加上local就是局部函数

以下两个函数是一样的

function foo(x) return x^2 end
foo = function(x) return x^2 end

 

posted @ 2018-03-20 00:28  马大欧  阅读(164)  评论(0编辑  收藏  举报