Objekt-Problem: Kann ich einer Property den Aufruf einer Methode dieses Objektes zuweisen?

    • Offizieller Beitrag

    Hi,

    meine Aktivitäten im OOP Bereich sind eher bescheiden. Ich schreibe ja viele Erweiterungen für SciTE in Lua. Dort kann ich mit Objekten arbeiten. Nun habe ich eine grundlegende Frage, die nicht sprachbezogen ist, sondern sich eher grundsätzlich auf das Objektverständnis bezieht:

    Kann ich der Property eines Objektes den Aufruf einer Methode desselben Objektes zuweisen?

    Ich habe mal ein fiktives Bsp. erstellt, das mein Problem verdeutlicht:

    Spoiler anzeigen


    Das funktioniert also wie gewollt.
    Da die Methoden aber kein Argument erfordern würde ich den Funktionsaufruf gerne an Properties zuweisen.
    Also in der Form: "HALF = calc:half()"
    Somit hätte ich statt des Aufrufs "calc:half()" den Aufruf "calc.HALF".
    Aber im Objekt selbst kann ich so nicht auf andere Methoden dieses Objekts zugreifen. "calc" wird mir dann als unbekannter Globaler Index markiert. Dasselbe passiert bei Verwendung von "self".
    Erlauben Objekte überhaupt solche Re-Referenzierung und falls ja: Wie müsste ich syntaktisch vorgehen?
    ..Oder versuche ich hier die Quadratur des Kreises? :whistling:

    P.S. Es geht mir nicht darum, wie man es anders lösen könnte (Lösungen habe ich dafür), sondern ob es so realisierbar ist oder nicht. ;)

  • Ich glaub nicht das dies geht, es gibt Funktionspointer, aber selbst die ruft man wieder mit () auf und in einer struct funktionieren sie so auch nicht.

    Aber du könntest im Konstruktor die value mitgeben, dann kann man es als Property machen:

    Spoiler anzeigen

    ( Ist C++, kann kein Lua )

    Gruß Greek