表值返回nil?

时间:2013-07-07 21:35:47

标签: random lua

我正在制作一个随机字生成器,而且我遇到了一个小问题。我正在尝试从包含closedLetters(c,d,f等)的表中打印值,但它不起作用。它返回零。帮助

local closedLetters={b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, z}
local openLetters={a, e, i, o, u, y}
print(closedLetters[2])

(那段代码只是一个例子,我设置的实际上更像是这样)

local closedLetters={b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, z}
local openLetters={a, e, i, o, u, y}
print(closedLetters[math.random(#closedLetters)]..openLetters[math.random(#openLetters)])

2 个答案:

答案 0 :(得分:5)

该表中只有一堆键。具有nil值的键,因此您的返回值。 改为使它们成为文字: closedLetters = {'a','b',.....}

答案 1 :(得分:2)

为了补充Eyeball的答案,您可以只生成closedLettersopenLetters个实际字符串。然后,您可以使用string.sub来访问它们:

local closedLetters = "bcdfghjklmnpqrstvwxz"
local openLetters   = "aeiouy"
local letter1, letter2 = math.random(#closedLetters), math.random(#openLetters)
print(closedLetters:sub(letter1, letter1) .. openLetters:sub(letter2, letter2) )