我想知道是否有方法來指定是否應複製或引用lua函數的參數。顏色是表示顏色的對象。指定一個lua參數應該是一個副本或參考
例如,對於這個代碼
function editColor(col)
col.r = 0
print(tostring(col.r))
end
color = Color(255, 0, 0)
print(tostring(color.r))
editColor(color)
print(tostring(color.r))
使輸出
255
0
0
所以COL是一個 「參考」 色,但這樣的代碼:
function editColor(col)
col = Color(0, 0, 0)
print(tostring(col.r))
end
color = Color(255, 0, 0)
print(tostring(color.r))
editColor(color)
print(tostring(color.r))
使此輸出
255
0
255
所以這裏的顏色被複制。
有沒有辦法強制參數被複制或引用?就像C++中的&
運算符一樣?
這可能有助於封閉:http://stackoverflow.com/questions/640642/how-do-you-copy-a-lua-table-by-value – Alex 2011-05-20 23:45:56