feng鸽的博客

山不在高,有仙则名.

正确地尾调用

Lua支持“尾调用消除” 当一个函数调用是另一个函数的最后一个动作时,该调用才算是一条“尾调用”, 以下代码对g的调用就是一条“尾调用”:     function  f(x)  return g(x)  end 也就是说,当f调用完g之后就再无其他事情可做了,因此在这种情况中,程序就不需...

2017-03-27 23:20:21

阅读数:523

评论数:0

非全局的函数

函数不仅可以存储在全局变量中,还可以存储在table的字段中和局部变量中。 若要在Lua中创建这种函数,只需将常规的函数语法与table语法结合起来使用即可. Lib={} Lib.foo=function(x,y) return  x+y end Lib.goo=function(x,y...

2017-03-27 23:04:27

阅读数:138

评论数:0

闭合函数

将一个函数写在另一函数之内,那么这个位于内部的函数便可以访问外部函数中的局部变量,这项特征称之为“词法域”。 names={"Peter","Paul","Mary"} grades={Mary=10,Paul=7,Peter=8} ...

2017-03-27 22:52:08

阅读数:180

评论数:0

深入函数

函数是一种“第一类值”,它们具有特定的词法域。 “第一类值”,表示在Lua种函数与其他传统类型的值(例如数字和字符串)具有相同的权利。 函数可以存储到变量中(无论全局变量还是局部变量)或table中,可以作为实参传递给其他函数,还可以作为其他函数的返回值. "词法域",这是指一...

2017-03-27 22:05:27

阅读数:140

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭