Spezielle Werte: Unterschied zwischen den Versionen

Aus Wiki des Deutschsprachige Xbaseentwickler e. V.
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „__FORCETOC__ == Allgemeines == Die Sprache verfügt über spezielle Werte, die hier erläutert werden sollen. Diese Werte sind Bestandteile des Sprachstandard…“)
 
Keine Bearbeitungszusammenfassung
 
Zeile 21: Zeile 21:
  cEins => NIL
  cEins => NIL
  cZwei => "Drei"
  cZwei => "Drei"
Vergleiche von Variablen mit NIL ergeben immer .F., ausser wenn die Variable selbst den Wert NIL enthält:
cEins := "Abc"
dHeute := date()
nZwei := 1
lBool := .F.
xNil := NIL
? cEins == NIL      => .F.
? dHeute == NIL    => .F.
? nZwei == NIL      => .F.
? lBool == NIL      => .F.
? xNil == NIL      => .T.
==== NIL und [[Empty()]] ====
Eine Variable, deren Wert NIL ist, wird von der Funktion [[Empty()]] als leer (.T.) gemeldet:
cEins := NIL
? Empty(cEins)      => .T.
cEins := ""
? Empty(cEins)      => .T.
cEins := 0
? Empty(cEins)      => .T.
==== NIL und [[Type()]] bzw. [[ValType()]] ====
Da NIL kein definierter Datentyp ist, melden die Funktionen [[Type()]] bzw. [[ValType()]] immer "U" für "undefined", wenn sie auf eine Variable angewandt werden, deren Inhalt NIL ist.





Aktuelle Version vom 5. Januar 2017, 16:00 Uhr

Allgemeines

Die Sprache verfügt über spezielle Werte, die hier erläutert werden sollen. Diese Werte sind Bestandteile des Sprachstandards, d.h. sie müssen nicht explizit definiert werden.


Liste der speziellen Werte

NIL

Dieser Spezialwert definiert einen nicht definierten Wert.

Eine numerische Variable, der noch kein Wert zugewiesen wurde, enthält in den meisten Sprachen den Wert 0 (Null). In den meisten Fällen ist dann jedoch keine Unterscheidung möglich, ob der Wert der Variablen tatsächlich 0 (Null) ist (im Sinne von "Kontensaldo ist Null, das Konto ist ausgeglichen), oder 0 im Sinne von NULL (der Wert wurde noch nicht definiert).

In Xbase++ wird jede Variable, die als LOCAL oder STATIC definiert wird, mit dem Wert NIL initialisiert, sofern der Programmierer nicht eine explizite Zuweisung vorgenommen hat:

LOCAL cEins, cZwei := "Drei"

In diesem Beispiel ist der Inhalt der Variablen wie folgt:

cEins => NIL
cZwei => "Drei"

Vergleiche von Variablen mit NIL ergeben immer .F., ausser wenn die Variable selbst den Wert NIL enthält:

cEins := "Abc"
dHeute := date()
nZwei := 1
lBool := .F.
xNil := NIL
? cEins == NIL      => .F.
? dHeute == NIL     => .F.
? nZwei == NIL      => .F.
? lBool == NIL      => .F.
? xNil == NIL       => .T.

NIL und Empty()

Eine Variable, deren Wert NIL ist, wird von der Funktion Empty() als leer (.T.) gemeldet:

cEins := NIL
? Empty(cEins)      => .T.
cEins := ""
? Empty(cEins)      => .T.
cEins := 0
? Empty(cEins)      => .T.


NIL und Type() bzw. ValType()

Da NIL kein definierter Datentyp ist, melden die Funktionen Type() bzw. ValType() immer "U" für "undefined", wenn sie auf eine Variable angewandt werden, deren Inhalt NIL ist.


.F. und .T.

.F. und .T. sind konfigurative Konstanten, die falsch bzw. wahr abbilden. Sie können in Abfrageausdrücken eingesetzt werden:

IF .F.
   ...
ENDIF

Diese Abfrage würde nie ausgeführt werden, da ihre Bedingung durch die Verwendung der konfigurativen Konstante .F. immer verneint würde.