我正在使用Lua 5.1.4中的一個腳本,它使用表作爲參數。我的問題是,只要我用table作爲參數調用函數,它實際上會傳遞表的句柄而不是數據。Lua 5.1.4從表(數組)處理數據(不是句柄)到函數
我做了一個簡單的腳本,使我更容易解釋這個...
function test(a)
a[2]="not something"
return a
end
alpha={"hello","something"}
bravo=test(alpha)
print(alpha[2])
print(bravo[2])
回報
不是
不是
從這個例子很明顯,a
是一樣的韓dle爲alpha
,因此表alpha
被更改,但我會以某種方式保留原始值alpha
(在此示例中)。
我有一些想法,但它會使功能更大,更慢,所以我想知道如果有一個簡單的方法來做到這一點。重要的是要提到我的桌子不是固定的,而且很大。
感謝這個答案雖然我在等待更好的東西......但我也相信有沒有更好的辦法:DI想我會繼續前進,也許使用字符串,因爲在我的應用程序在一個表中的字段包含單個字符/數字並希望字符串將工作。 – IsawU
看來他在使用數組。只要它不包含8000+個元素,一個簡單的複製方法就是'''local new = {unpack(old)}'' – warspyking
@warspyking:「我的表格不是固定長度,而且很大。」所以這似乎不太可能奏效。 –