EASY Geschrieben 21. August Teilen Geschrieben 21. August (bearbeitet) Hallo, ... ist mir erst gestern aufgefallen und ich verstehe es nicht so ganz... Wenn ich habe... local a=$("Schalter klein").transformation.position for i=1,5 do local b=a b.x=b.x+i print("a.x="..a.x,"b.x="..b.x) end ... ist das Ergebnis... Wenn ich habe... local a=$("Schalter klein").transformation.position for i=1,5 do local b={x=a.x,y=a.y,z=a.z} b.x=b.x+i print("a.x="..a.x,"b.x="..b.x) end ... ist das Ergebnis... Warum wird im ersten Fall a geändert, wenn sich b ändert? Gruß EASY Bearbeitet 21. August von EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Goetz Geschrieben 21. August Teilen Geschrieben 21. August (bearbeitet) vor 26 Minuten schrieb EASY: Warum wird im ersten Fall a geändert, wenn sich b ändert? Weil im ersten Fall beide (a und b) auf dieselbe Liste zeigen. Die Liste wird nicht kopiert, sondern beide Variablen enthalten die Adresse derselben Liste a = {"Eins", "Zwei", "Drei", "Vier"} b = a b[1] = "neu" print(a[1]) -- neu Bearbeitet 21. August von Goetz Schreibfehler korrigiert Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
EASY Geschrieben 21. August Autor Teilen Geschrieben 21. August Hallo @Goetz, Danke für die Erklärung... in manchen Dingen ist lua eben schon speziell Gruß EASY Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Eggu Geschrieben 22. August Teilen Geschrieben 22. August vor 21 Stunden schrieb EASY: in manchen Dingen ist lua eben schon speziell ... aber nicht in diesem Fall. "Copy"-Verhalten ist z.B. in Python ganz ähnlich, und leider nicht immer ganz einfach vorhersehbar, ob die Referenz kopiert wird oder das ref. Objekt. Einfache Zuweisungen der Form "Obj_Ref_A = Obj_Ref_B" beziehen sich meistens auf die Referenz (oder "Pointer", wie man früher sagte, z.B. in Pascal oder C), wenn man nur einzelne Elemente eines Objekts zuweist (wie in "b={x=a.x,y=a.y,z=a.z}") kann es keine Obj-Ref sein, auch wenn die Einzelkopien wieder zu einem Objekt der ursprünglichen Form ("Typ") zusammen gesetzt werden. Gruß Eggu Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen.
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden