如何在 Lua 表中的一系列值上执行函数

我有一个程序,它以字母作为输入,找到它们在表中分配的数字,然后在给出完成的一对数字(编码字母)作为输出之前对该数字进行一些数学运算。我已经设置了函数来检查输入的字符并运行数学运算,但我的代码看起来像这样:

checkchar(chars[1])
checkchar(chars[2])
checkchar(chars[3])
checkchar(chars[4])
checkchar(chars[5])
checkchar(chars[6])
checkchar(chars[7])
checkchar(chars[8])
checkchar(chars[9])
checkchar(chars[10])
checkchar(chars[11])
checkchar(chars[12])
checkchar(chars[13])
checkchar(chars[14])
checkchar(chars[15])
checkchar(chars[16])
checkchar(chars[17])
checkchar(chars[18])
checkchar(chars[19])
checkchar(chars[20])
checkchar(chars[21])
checkchar(chars[22])
checkchar(chars[23])
checkchar(chars[24])
checkchar(chars[25])

这几乎是低效的,而且它强加了一个25个字符的限制,因为我真的不想将这个东西黏贴100次。

有没有办法让程序找到已输入的字符数,并使用该数字来决定要运行多少个函数,然后再次使用该数字来仅打印出输入的内容,这样我就不必打印一堆黑色空格了?

点赞
用户4093928
用户4093928

我不确定我是否完全理解了你的问题,但是使用 for 循环迭代是否是解决问题的方法?比如:

for i=1,25 do
  checkchar(chars[i])
end

甚至更好的是

for _, char in pairs(chars) do
  checkchar(char)
end

如果想要做得更好,而且还要存储结果,可以使用 map 函数

local result = map(checkchar, chars)

其中 map 函数如下

function map(func, array)
  local new_array = {}
  for i,v in ipairs(array) do
    new_array[i] = func(v)
  end
  return new_array
end
2014-10-03 07:07:24