Lua中函数

时间:2015-12-03 11:42:04   收藏:0   阅读:296

1,lua中函数属于“第一类值”(与其他传统类型值具有相同的权利),函数可以存贮到变量或table中,可以作实参和其他函数返回值

2,函数与其他值一样都是匿名的,它们都没有名称,所谓的函数名实际上是一个持有某函数的变量

     function foo (x)  return 2*x     end

  是这种方式的简写    

    foo = function (x)  return 2*x     end

3,closure(闭合函数)

  function newCounter()

    local i = 0

      return function()

          i = i+1

          return i 

      end

  end

  c1 = newCounter()

  c2 = newCounter()

  print(c1())-->1 一个闭包(一个函数加上该函数所需访问的所有“非局部的变量”)

  print(c1())-->2 

  pirnt(c2())-->1 一个新的闭包

4,非全局的函数

  注意:local fact= function(n)

        if n == 0 then return 1

        else return n*fact(n-1) --错误

        end

      end

   此时 函数尚未完成,语句中fact是全局的,解决方案:先声明局部变量 local fact

 

原文:http://www.cnblogs.com/Xiaoshun/p/5015350.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!