码迷,mamicode.com
首页 > 其他好文 > 详细

Lua中函数

时间:2015-12-03 11:45:18      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

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

 

Lua中函数

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!