Jump to content
Zum Start hinzufügen

Weitere Informationen

3D-Modellbahn Studio

Eine Vollbild-App auf Ihrem Startbildschirm mit Push-Benachrichtigungen und mehr.

So installieren Sie diese App auf iOS und iPadOS
  1. Tippen Sie auf das Teilen-Symbol in Safari
  2. Scrollen Sie durch das Menü und tippen Sie auf Zum Startbildschirm hinzufügen.
  3. Tippen Sie oben rechts auf Hinzufügen.
So installieren Sie diese App auf Android
  1. Tippen Sie auf das 3-Punkte-Menü (⋮) in der oberen rechten Ecke des Browsers.
  2. Tippen Sie auf Zum Startbildschirm hinzufügen oder App installieren.
  3. Bestätigen Sie durch Tippen auf Installieren.

Empfohlene Beiträge

Geschrieben

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...
Bild01.jpg.e33539d3aa9db94460b26299ff09130d.jpg

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...
Bild02.jpg.44cae04398eb5718844ca4e3b147c058.jpg

Warum wird im ersten Fall a geändert, wenn sich b ändert?

Gruß
EASY

Bearbeitet von EASY

Geschrieben
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 von Goetz
Schreibfehler korrigiert

Geschrieben
  • Autor

Hallo @Goetz,

Danke für die Erklärung:)... in manchen Dingen ist lua eben schon speziell:/

Gruß
EASY

 

Geschrieben
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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Push-Benachrichtigungen konfigurieren

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.