lua程序设计第9章闭包用法与练习题答案

lua语言中的函数是第一类值

a = {p = print}
a.p("Hello world") --> Hello world
print = math.sin -> 'print'现在指向sin函数
a.p(print(1)) -->0.8414709848079

function foo(x) return 2 * x end    <--> foo = function(x) return 2*x end

在lua中所有的函数都是匿名的
比如print,实际上指的是保存该函数的变量

定义局部函数:

local function f()
	body
end    

local function foo(params)body end <-->local foo; 
foo = function(params)body end

这是一种语法糖

前向声明,类似c++
如:

local f --前向声明


local function g()
	some code f() some code
end

function f()
	some code g() some code
end


词法定界:
当函数A被包含于函数B时,A能够访问B的所有局部变量,这种特性叫做词法词法定界

function sortbygrade(names, grades)
	table.sort(names,function(n
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值