NoValue ist ein spezielles Literal. Es weist keinen Typ auf und kann in alle Typen konvertiert werden. Jegliche Berechnung mit NoValue, die kein Vergleich mit NoValue ist, gibt NoValue zurück.
NoValue wird in Situationen verwendet, in denen ein Wert erforderlich ist, der unmöglich ein erwartetes Ergebnis sein kann.
Beispiel:
Intent>position(1,{3,4,5,1}) --> 4 Intent>position(1,{3,4,5}) --> NoValue Intent>
Bei NoValue handelt es sich um einen gültigen Wert. Mit Ausnahme des Operators "=" und einigen Funktionen beeinflusst NoValue jedoch jede Berechnung oder jeden Ausdruck, in der bzw. in dem es enthalten ist, derart, dass das Ergebnis der Berechnung selbst NoValue ergibt:
Intent>3+NoValue --> NoValue Intent>
Beachten Sie, dass dies nicht zu einem Fehler führt. Allerdings geben einige Funktionen eine Fehlermeldung aus, wenn Sie NoValue übergeben.
Es gibt Ausnahmefälle, in denen NoValue zulässig ist und das Ergebnis nicht beeinflusst. Vor allem können Sie auf NoValue mithilfe der normalen Operators "=" überprüfen und erhalten ein boolesches Ergebnis. Beispiel: "if (foo = NoValue) then..." gibt NoValue nicht zurück, nur um NoValue im Gleichheitstest zu referenzieren.