Function 在Lua中连接函数名
这可能真的很简单,但我是新来的,所以我们开始吧 我将如何编写此代码:Function 在Lua中连接函数名,function,lua,concatenation,Function,Lua,Concatenation,这可能真的很简单,但我是新来的,所以我们开始吧 我将如何编写此代码: local color1 = { 255,0,0 } local color2 = { 1,200,1 } local color3 = { 2,2,150 } for i = 1, 3 do local x = "color" .. i[i] print( x ) end 我想要什么作为输出 255 200 150 如果color1、color2和color3表是静态的;您可以尝试以下方法:
local color1 = { 255,0,0 }
local color2 = { 1,200,1 }
local color3 = { 2,2,150 }
for i = 1, 3 do
local x = "color" .. i[i]
print( x )
end
我想要什么作为输出
255
200
150
如果color1、color2和color3表是静态的;您可以尝试以下方法:
local color1, color2, color3 = { 255,0,0 }, { 1,200,1 }, { 2,2,150 }
color = { color1 = color1, color2 = color2, color3 = color3 }
for i = 1, 3 do
local x = color["color"..i][i]
print( x )
end
输出:如果color1、color2和color3表是静态的;您可以尝试以下方法:
local color1, color2, color3 = { 255,0,0 }, { 1,200,1 }, { 2,2,150 }
color = { color1 = color1, color2 = color2, color3 = color3 }
for i = 1, 3 do
local x = color["color"..i][i]
print( x )
end
输出:最简单的解决方案是将颜色信息放入一个数组中
local colors = {
{ 255,0,0 },
{ 1,200,1 },
{ 2,2,150 },
}
-- Iterating by hand:
for i=1, #colors do
local rgb = colors[i]
print(rgb[i])
end
-- ipairs is another way to do the same thing
for i, rgb in ipairs(colors) do
print(rgb[i])
end
最简单的解决方案是将颜色信息放入数组中
local colors = {
{ 255,0,0 },
{ 1,200,1 },
{ 2,2,150 },
}
-- Iterating by hand:
for i=1, #colors do
local rgb = colors[i]
print(rgb[i])
end
-- ipairs is another way to do the same thing
for i, rgb in ipairs(colors) do
print(rgb[i])
end
你不应该在5.1+中使用ipairs,它比i=1慢得多,array做同样的事情。@dualed:这听起来有点像过早的优化,从我听到的情况来看,这是一个很大的问题。我真的很讨厌必须键入两次数组名,或者如果数组是某个表达式的结果,则必须创建一个额外的变量。这是一个每次迭代调用一个C函数而不是一个增量操作的问题,因为该操作只调用一次,而且无论如何都比ipairs函数执行得更好。不,它也不是不成熟的,它做的事情是一样的,基本上不需要改变,而且你明确指出了这一点,所以我只是评论说,在Lua5.1及更高版本中使用它不是一件好事。可能在那之前还没有,但是操作符是在5.1中引入的,所以你必须解决这个问题。这将是过早的优化。@duald:我为什么要关心每个循环是否有额外的函数调用?不管怎样,大多数东西都不受CPU的限制,它仍然比Python快很多倍。@dualed:如果是这样,为什么5.1不反对ipairs?你不应该在5.1+中使用ipairs,它比i=1要慢得多,数组做和做同样的事情。@duald:听起来有点像过早的优化,从我所听到的来看,这是一个很大的品味问题。我真的很讨厌必须键入两次数组名,或者如果数组是某个表达式的结果,则必须创建一个额外的变量。这是一个每次迭代调用一个C函数而不是一个增量操作的问题,因为该操作只调用一次,而且无论如何都比ipairs函数执行得更好。不,它也不是不成熟的,它做的事情是一样的,基本上不需要改变,而且你明确指出了这一点,所以我只是评论说,在Lua5.1及更高版本中使用它不是一件好事。可能在那之前还没有,但是操作符是在5.1中引入的,所以你必须解决这个问题。这将是过早的优化。@duald:我为什么要关心每个循环是否有额外的函数调用?不管怎样,大多数东西都不受CPU的限制,它的速度仍然比Python快很多倍。@dualed:如果这是真的,为什么5.1不反对ipairs?