所以我Lua代碼看起來是這樣的:Lua:在返回表的函數之後可以有逗號嗎?
function makeTable()
return {1,2,3}
end
table = {
makeTable(),
{4,5,6}
}
的table
結果應該是{{1, 2, 3}, {4, 5, 6}}
。
我很在意makeTable()
後的逗號。在Lua中,對於返回表的函數,這是否有效?還是有更好的方法讓返回表的函數成爲表的第一項?
所以我Lua代碼看起來是這樣的:Lua:在返回表的函數之後可以有逗號嗎?
function makeTable()
return {1,2,3}
end
table = {
makeTable(),
{4,5,6}
}
的table
結果應該是{{1, 2, 3}, {4, 5, 6}}
。
我很在意makeTable()
後的逗號。在Lua中,對於返回表的函數,這是否有效?還是有更好的方法讓返回表的函數成爲表的第一項?
這是行得通的。您的代碼是否存在任何問題或者您正在努力實現的目標?或者,如果你願意,你可以這樣做:
function makeTable()
return {{1,2,3}}
end
t = maketable()
table.insert(t, {4,5,6})
這是完全有效Lua
。嘗試添加這對代碼的底部:
io.write("{")
for i,v in ipairs(table) do
io.write("{")
for j,m in ipairs(v) do
io.write(m)
io.write(",")
end
io.write("},")
end
print("}")
你會看到它打印:{{1,2,3,},{4,5,6,},}
。您正在爲您的二維數組正確添加一個數組。
你可以做that.But我想這將是清潔:
function makeTable()
return {1,2,3}
end
local t = {}
table.insert(t, makeTable())
table.insert(t, {4, 5, 6})
這是100%的罰款。
你寫道:「在函數後面加一個逗號看起來很奇怪」。那麼,這個逗號與表格表達式中的逗號完全一樣:它將一個表值與下一個表值分開。
換句話說,{ makeTable(), {4,5,6} }
是完全一樣{1,2}
,除了它具有在適當位置的1
makeTable()
,和{4,5,6}
代替2
。
因爲我對Lua不太熟悉(在一個函數看起來很奇怪之後有一個逗號),並且我正在修改Factorio(使用Lua作爲其mod API),並且需要創建大量相關項目和食譜。 – bigyihsuan
你可以用LUA做非常邪惡的事情,它有點像Javascript,你可以濫用代碼中的垃圾,並通過奇怪的滑稽動作使其工作。 如果您有多個項目要使用相同的模式創建,您也可以添加參數,例如: 'function makeTable(additionalpart){return {{1,2,3},additionalpart} end' 然後調用它as: 't = makeTable({4,5,6})' 我也建議你在你的變量不應該暴露在別處時使用'local'前綴。最後,'table'用於表格函數,這是我以前編輯的一部分。使用別的東西:) –