Lua返回一个Closures函数实例

代码如下:

do
 function Button(x)
  print("Call Button");
  x.action();
  print(x.label);
 end

function add_to_display(digit)
  print("Call add_to_display");
  print(digit);
 end

function digitButton(digit)
  return Button{//return a table and the function(Button), it means that the Button receives the param(the table{...})
      label = tostring(digit),
      action = function()
         print("digit: ", digit);
         add_to_display(digit);
         end
       }

end

local fun = digitButton(3);

end

写个简单的迭代器:

代码如下:

do
 t_ = {9, 2, 3, 4};

function values(t)
  local i = 0;
  return function()
     i = i + 1;
     return t[i];
    end
 end

iter = values(t_);

while true do
  local element = iter();
  if element == nil then
   break;
  end

print(element);
 end

end

(0)

相关推荐

  • Lua返回一个Closures函数实例

    复制代码 代码如下: do  function Button(x)   print("Call Button");   x.action();   print(x.label);  end function add_to_display(digit)   print("Call add_to_display");   print(digit);  end function digitButton(digit)   return Button{//return a t

  • node.js 核心http模块,起一个服务器,返回一个页面的实例

    如下所示: let http=require("http"); //引入核心http模块 let fs=require("fs"); let mime={ '.js':'application/javascript', '.css':'text/css' } //创建一个函数,req代表客户端,res代表服务器可写流 let listener=(req,res)=>{ //res是可写流,有write和end if(req.url==="/"

  • php返回json数据函数实例

    本文实例讲述了php返回json数据函数的用法,分享给大家供大家参考.具体方法如下: json_encode()函数用法: echo json_encode(array('a'=>'bbbb','c'=>'ddddd'); 这样就会生成一个标准的json格式的数据 <?php //需要执行的SQL语句 //单条 $sql="select id,name from tbl_user where id=1"; //多条数据 //$sql="select id,n

  • Lua中调用C++函数实例

    到这为止,大家对Lua和C++之间的通信应该有些熟悉了,今天我们来介绍最后一个操作. (旁白:什么?最后一个?要结束了么?太好了~!) 上一章传送门:http://www.jb51.net/article/55097.htm 1. Lua调用C++的函数 Lua要调用C++的函数还是蛮方便的,首先,我们来创建一个c++函数先: 复制代码 代码如下: public: static int getNumber(int num); int HelloLua::getNumber( int num )

  • Lua中调用C语言函数实例

    在上一篇文章(C调用lua函数)中,讲述了如何用c语言调用lua函数,通常,A语言能调用B语言,反过来也是成立的.正如Java与c语言之间使用JNI来互调,Lua与C也可以互调. 当lua调用c函数时,使用了和c调用lua中的同一种栈,c函数从栈中得到函数,然后将结果压入栈中.为了区分返回结果和栈中的其他值,每一个函数返回结果的个数. 这里有个重要的概念:这个栈不是全局的结构,每个函数都有自己的私有局部栈.哪怕c函数调用了lua代码,lua代码再次调用该c函数,他们有各自独立的局部栈.第一个参数

  • PHP给前端返回一个JSON对象的实例讲解

    解决问题:用php做后台时,如何给前端发起的AJAX请求返回一个JSON格式的"对象": 说明:我本身是一个前端,工作久了之后发现要是不掌握一门后端开发语言的话,总感觉有点无力.最近在边做自己的个人网站边学习php,在写验证码验证的时候,需要给前端发起的验证请求返回一个便于操作的数据,于是自然就想到了返回一个JSON格式的"对象". 在网上查了很多写法,无奈大多不行,最后在stackoverflow上终于找到原因并改写代码,亲测有用,于是记录下来,希望对后来人有所帮

  • Python函数式编程之返回函数实例详解

    目录 看代码: 用filter函数来计算素数 用Python高阶函数来实现这个算法: 高阶函数实现打印小于100的素数: 总结 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 看代码: # -*- coding: utf-8 -*- # @File : 返回函数的高阶函数.py # @author: Flyme awei # @email : Flymeawei@163.com # @Time : 2022/8/21 14:48 def sum_fun(*args): def

  • Lua中的动态链接实例

    C语言应用程序中经常使用动态链接机制集成各个模块:不过,动态链接机制并不是ANSI C标准的一部分,也就是说实现方法是不可以移植的. Lua通常不会包含任何无法通过ANSI C来实现的机制,如果动态链接是一个例外.Lua打破了对可移植性的准则,为几种平台实现了一套动态链接机制. package.loadlib是动态链接功能的核心函数,接收两个参数:动态库的完整路径名.函数名称. loadlib函数加载指定的库,并将其链接入Lua:如你所想,并不会调用库中的任何函数,而是将一个C函数作为Lua函数

  • PHP回调函数与匿名函数实例详解

    本文实例讲述了PHP回调函数与匿名函数.分享给大家供大家参考,具体如下: 回调函数和匿名函数 回调函数.闭包在JS中并不陌生,JS使用它可以完成事件机制,进行许多复杂的操作.PHP中却不常使用,今天来说一说PHP中中的回调函数和匿名函数. 回调函数 回调函数:Callback (即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代码的,某一块可执行代码的引用. 通俗的解释就是把函数作为参数传入进另一个函数中使用:PHP中有许多 "需求参数为函数"

  • Lua中调用C++函数示例

    Lua当然也能够调用C中定义的函数.一个平均数的例子,解释一下.    下面给出的C++函数average()演示了如何接受多个参数且返回超过一个值. 1.lua_gettop函数返回栈顶的索引值.因为在Lua中栈是从1开始编号的,因此该函数获得的值就是参数的个数. 2.在for循环中计算所有参数之和. 3.调用lua_pushnumber()将参数的平均值压栈.  4.最后,函数返回1,说明有一个返回值在栈中. 现在C++函数已经被定义好了,我们必须将它告诉Lua解释器.这将在main函数中初

随机推荐