[JAVA] Schema und jsr223

Schema und Java-Objekte


Kommentar auskommentieren

";" Das heißt, ein Semikolon am Anfang der Zeile


import

Im Moment ist es eine gute Idee, in der ersten Zeile Folgendes zu deklarieren:

(import type-system) (import oo) (import s2j)


Funktionsprüfung

(display "HelloWorld")

Gibt an, ob mit auf die Konsole ausgegeben werden soll


Objektorientierung

Grundsätzlich scheint die Objektmanipulation in objektorientierten Sprachen nicht in den Sprachspezifikationen enthalten zu sein, aber es scheint, dass die meisten Implementierungen sie separat haben. sisc ist auch vorbereitet, weil es auf JavaVM implementiert ist.

(Feldinstanzname)

Gefühl

Obj als Instanz. Wenn str als Feld

(str obj)

Ich fühle mich so.

Wenn das Argument args in der Methode ist,

(str obj args)

Ich fühle mich so.


JSR223-Objekt

Es befindet sich in der Readme-Datei der Schnittstelle für JSR223, aber für das gebundene Objekt wird var bereitgestellt.

Wenn Sie beispielsweise als obj binden,

(var 'obj)

Ich fühle mich so.

Bei Java-Instanzen wird normalerweise zwischen Groß- und Kleinschreibung unterschieden, nicht wahr?

Damit Zum Beispiel, wenn Sie als Obj verbindlich sind

(var '|Obj|)

Ich fühle mich so.

Um auf dieses Feld zuzugreifen, str

(str (var '|Obj|))

Es bedeutet das.


Java-Feldname

Java-Felder unterscheiden übrigens auch zwischen Groß- und Kleinschreibung.

Was wäre, wenn die vorherige Str so etwas wie Str wäre?

Es gibt also Methoden (oder Operatoren oder Befehle), die Java-Feldnamen auflösen.

(generic-java-field-accessor '|Str|)

Ich fühle mich so.

Um auf das Str-Feld des gebundenen Obj-Objekts zuzugreifen,

(  (generic-java-field-accessor '|Str|)  (var '|Obj|) )

Wird sein.

Eine andere für Feldaktualisierungen 「generic-java-field-modifier」 Für die Methode 「generic-java-method」 Es gibt so etwas wie


Ich möchte den Wert eines Java-Feldnamens als Schemadaten verwenden.

Nehmen wir nun ein Java-Boolesches Feld namens IsBool an (sagen wir, es ist ein Feld in einem gebundenen Objekt namens Obj) und erwägen, es im if des Schemas zu verwenden.

(  (generic-java-field-accessor '|IsBool|)  (var '|Obj|) )

Da es so ist, kann es nicht in shceme verwendet werden, daher gibt es etwas, das als (-> type target) bezeichnet wird, um dies als Schema zu verwenden.

(->boolean  (   (generic-java-field--accessor '|IsBool|)   (var '|Obj|)  ) )

Mit diesem Gefühl wurde es möglich, es im Schema zu verwenden. Wenn Sie es also dem if-Operator geben, sieht es schließlich so aus

(if  (eq?   (->boolean    (     (generic-java-field--accessor '|IsBool|)     (var '|Obj|)    )   )   #t  ) (Dies ist die wahre Formel) (Dies ist eine gefälschte Formel) )

Es wird so sein.

Recommended Posts

Schema und jsr223
jacl und jsr223
== und gleich