当前位置 博文首页 > Lua返回一个Closures函数实例

    Lua返回一个Closures函数实例

    作者:admin 时间:2021-02-08 18:03

    复制代码 代码如下:

    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

    js
下一篇:没有了