信息发布→ 登录 注册 退出

Lua返回一个Closures函数实例

发布时间:2026-01-11

点击量:

复制代码 代码如下:
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

标签:# function  # nil  # break  # values  # iter  # true  # table  # Button  # print  # Call  # br  # nbsp  # Lua  # span  # digit  # digitButton  # return  # action  # label  # add_to_display  # 迭代  # 函数  # Closures  # 返回  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!