Ankündigung

Einklappen
Keine Ankündigung bisher.

Zugriff auf den Wert eines Items: "cd.itempfad()" vs. "cd.itempfad"

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [callidomus] Zugriff auf den Wert eines Items: "cd.itempfad()" vs. "cd.itempfad"

    Guten Morgen,

    da laut Doku die Möglichkeit mit "cd.itempfad" auf den Wert eines Items zuzugreifen eine Alternative zu "cd.itempfad()" darstellt, habe ich diese in Logiken auch immer genutzt.

    Das geht bei Zahlen gut, bei Zeichenketten gibt es aber Probleme.

    Getestet mit Items vom Typ "num" (Nummer) und "str" (Zeichenkette)
    Code:
    cd.num_item1 = 1
    cd.num_item2 = 2
    cd.str_item1 = "Hello"
    cd.str_item2 = "World"
    Die Ergebnisse der Zuweisungen mit beiden Schreibweisen sind:
    Code:
    cd.num_item2 = cd.num_item1 // -> cd.num_item2 = 1
    cd.num_item2 = cd.num_item1() // -> cd.num_item2 = 1
    cd.str_item2 = cd.str_item1 // -> cd.str_item2 = "str_item1", also wirklich der Name des zugewiesenen Items ohne "cd."
    cd.str_item2 = cd.str_item1() // -> cd.str_item2 = "Hello"
    Also die Zuweisung von zwei String-Items ohne "()" schlägt fehl.

    Bei String-Formatierungen geht es gar nicht ohne die Klammer, auch nicht bei Nummer-Items:
    Code:
    cd.str_item2 = "{}".format(cd.num_item1) // -> cd.str_item2 = "num_item1"
    cd.str_item2 = "{}".format(cd.num_item1()) // -> cd.str_item2 = "1"
    cd.str_item2 = "{}".format(cd.str_item1) // -> cd.str_item2 = "str_item1"
    cd.str_item2 = "{}".format(cd.str_item1()) // -> cd.str_item2 = "Hello"

    Woran liegt das, bzw. wäre es nicht besser generell "cd.itempfad()" zu nutzen?


    Viele Grüße,
    Michael
    Zuletzt geändert von keil; 08.02.2017, 07:18.

    #2
    Hallo Michael,

    das woran zu erklären ist eher etwas für einen Workshop oder persönliches Gespräch.
    Du kannst generell () benutzen.
    Für einfache Operationen funktioniert es ja auch ohne. Bei der direkten Zuweisung von einem ItemObjekt 'auf' ein anderes ItemObjekt wird es komplexer. Ich schaue mir das mal an, ob ich den Code an der Stelle besser machen kann.

    Bis bald

    Marcus

    Kommentar


      #3
      Hallo Michael,

      ich konnte das fixen. Ist in Testing.

      Bis bald

      Marcus

      Kommentar

      Lädt...
      X