在Lua里像C++那样使用Lambda

我们在C++里面使用lambda的时候,形式大致如下

    int a = 30;
    auto f = [a](auto var)
    {
        cout << a << "  " << var << endl;
    };
    f(20);
    f(2.1f);

在Lua使用所谓的Lambda,其实就是使用一个临时函数变量,如下

local a = 30
local f = function(var)
    print(a, var)
end
f(20)
f(2.1)

二者的使用形式非常像。

一个重要的不同点在于Lambda内部如果要使用外界的变量,C++需要在[]里面进行捕获,而Lua则不用,它天然就可以拿到外面的变量!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lua中,可以使用math.random()函数来生成随机数。如果要重写随机数生成器,可以使用以下步骤: 1. 重置随机数种子 在Lua中,随机数生成器使用一个种子值来生成随机数。如果不重置种子值,每次运行程序时都会得到相同的随机数序列。为了让随机数更随机,可以通过设置不同的种子值来产生不同的随机数序列。可以使用math.randomseed()函数来设置种子值,例如: ``` math.randomseed(os.time()) ``` 这将使用当前时间作为种子值,以确保每次运行程序时都会产生一个不同的随机数序列。 2. 自定义随机数生成器 Lua的math库提供了一些随机数生成函数,例如math.random()和math.random(n),它们可以用于生成指定范围内的随机数。如果要自定义随机数生成器,可以使用以下代码: ``` function my_random(min, max) return math.floor(math.random() * (max - min + 1) + min) end ``` 这个函数将生成min和max之间的随机整数。具体来说,它将使用math.random()生成一个0到1之间的随机数,并将其乘以(max-min+1),以使随机数的范围等于(max-min+1)。然后,将结果向下取整并加上min,以得到min到max之间的整数随机数。 3. 使用自定义随机数生成器 现在可以使用my_random()函数来生成随机数,例如: ``` local random_number = my_random(1, 10) ``` 这将生成1到10之间的随机整数,并将其赋值给random_number变量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值