Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function 在Lua中连接函数名_Function_Lua_Concatenation - Fatal编程技术网

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?