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







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值