reflects ist eine Klasse/Operator, die aus einem anderen Datentyp erzeugt werden kann.
r reflects int;
r reflektiert anschließend int. r kann den Datentyp beschreiben:
print r.sizeof(), "\n"; print r$, "\n"; print r.isPrimitiv(), "\n"; => 4 int true
Außerdem verfügt r über eine Liste der enthaltenen Member
print r.count(), "\n"; => 0
Point contains x, y is double; r reflects Point; // r is type : Point@; print r.sizeof(), "\n"; print r[]#, "\n"; print r[0].sizeof(), "\n"; print r[0]$, "\n"; print r[0].isPrimitiv(), "\n"; print r[0].name(), "\n"; print r[0].position(), "\n"; print r[1].sizeof(), "\n"; print r[1]$, "\n"; print r[1].isPrimitiv(), "\n"; print r[1].name(), "\n"; print r[0].position(), "\n"; print r$, "\n"; print r.isPrimitiv(), "\n"; => 8 2 4 int true x 0 4 int true y 4 Point false
Eine derartige Datenstruktur kann mit der vTable kombiniert werden, so dass Objekte, die persistiert werden können, grundsätzlich „virtual“ sind.
io-Klassen kann sich so durch die Typen hangeln und in Schleifen die Daten entsprechend abhandeln.