【发布时间】:2018-08-31 20:55:17
【问题描述】:
您可能知道,在 Lua 中,数组从索引 1 开始。
在其他语言中,我经常使用模数来使值在数组成员中振荡,例如:
i = (i + 1) % array.length
return array[1]
我如何在 Lua 中做到这一点,array[0] 默认为 nil。
【问题讨论】:
-
i = i % #array + 1; return array[i]
您可能知道,在 Lua 中,数组从索引 1 开始。
在其他语言中,我经常使用模数来使值在数组成员中振荡,例如:
i = (i + 1) % array.length
return array[1]
我如何在 Lua 中做到这一点,array[0] 默认为 nil。
【问题讨论】:
i = i % #array + 1; return array[i]
先做模,然后增加值。
如果 i 等于长度,它将最终为 0。递增将导致 1。其他所有值都会增加。
这仅在递增 1 时有效。对于更大的步骤,你可以做
i = (i+n-1)% #array + 1
【讨论】: