Geben Sie whever ein lua-parameter sollte eine Kopie oder eine Referenz

Frage ich mich, ob es einen Weg gibt, um anzugeben, ob die Parameter einer lua-Funktion sein sollte kopiert oder nur referenziert. Farbe ist ein Objekt, das eine Farbe.

Beispielsweise mit diesem code

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))

Macht die Ausgabe

255
0
0

Also col ist ein "Verweis" auf die Farbe, aber dieser code:

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))

Macht diese Ausgabe

255
0
255

So, hier ist die Farbe kopiert.

Gibt es eine Möglichkeit zu zwingen, einen parameter kopiert werden oder auf die verwiesen wird? Genau wie die & - operator in C++?

InformationsquelleAutor Congelli501 | 2011-05-20
Schreibe einen Kommentar