Referenz - VAR
Syntax: VAR [SHARED] SymbolName = Ausdruck[, SymbolName = Ausdruck [, ...]]
Typ: Anweisung
Kategorie: Deklaration
VAR deklariert eine Variable, deren Typ aus dem initialisierenden Ausdruck abgeleitet wird.
Bei einer Deklaration mit VAR ist es nicht erlaubt, explizit einen Variablentyp anzugeben. Stattdessen wird der Typ aus dem initialisierenden Ausdruck ermittelt. Dieser Ausdruck kann eine Konstante oder eine Variable eines beliebigen Typs sein. Einzige Ausnahme bildet der WSTRING, der von VAR nicht unterstützt wird, da es keinen WSTRING-Typ mit variabler Länge gibt. Das wird sich höchstwahrscheinlich auch nicht ändern, wegen der Komplexität, die durch die Behandlung von Unicode hervorgerufen wird.
Da der Variablentyp daraus abgeleitet wird, was der Variablen zugewiesen wird, ist es hilfreich, zu wissen, wie die Zeichenfolgen bewertet werden. Alle Ziffernfolgen ohne Dezimal-Punkt sind standardmäßig INTEGER. Alle Ziffernfolgen mit Dezimal-Punkt sind standardmäßig DOUBLE.
Alle alphanumerischen Strings sind standardmäßig STRING. Wird eine Variable mit WSTRING und einer Zeichenfolge initialisiert, wird sie "umgewandelt" zu einem String mit variabler Länge.
Bestimmte Suffixe können bei Variablenbezeichnern benutzt werden, um ihren Typ festzulegen. Siehe Datentypen zu weiteren Informationen über Suffixe, die nach einer Zeichenfolge erlaubt sind.
Beachte: Suffixe müssen hinter dem Initialisierer erscheinen, nicht hinter der Variablen. Der Versuch, Variablen zu verwenden, die ein Suffix besitzen, ruft einen Compiler-Fehler hervor.
Beispiele:
Var a = Cast(Byte, 0)
Var b = Cast(Short, 0)
Var c = Cast(Integer, 0)
Var d = Cast(LongInt, 0)
Var d2 = 0ll ' LONGINT, festgelegt über das Suffix
Var au = Cast(UByte, 0)
Var bu = Cast(UShort, 0)
Var cu = Cast(UInteger, 0)
Var du = Cast(ULongInt, 0)
Var e = Cast(Single, 0.0)
Var f = Cast(Double, 0.0)
Var g = @c ' Integer Pointer
Var h = @a ' Byte Pointer
Var s2 = "hello" ' String mit Variabler Länge
Var ii = 6728 ' impliziter Integer
Var id = 6728.0 ' impliziter Double
Print "Byte: ";len(a)
Print "Short: ";len(b)
Print "Integer: ";len(c)
Print "Longint: ";len(d)
Print "noch ein Longint: ";len(d2)
Print "UByte: ";len(au)
Print "UShort: ";len(bu)
Print "UInteger: ";len(cu)
Print "ULongint: ";len(du)
Print "Single: ";len(e)
Print "Double: ";len(f)
Print "Integer Pointer: ";len(g)
Print "Byte Pointer: ";len(h)
Print "Variabler String: ";len(s2)
Print
Print "Integer: ";len(ii)
Print "Double: ";len(id)
Sleep
Unterschiede zu QB: neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC: existiert seit FreeBASIC v0.17
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb ist die Verwendung von VAR nicht möglich.
Siehe auch:
DIM, REDIM, COMMON, STATIC (Anweisung), SHARED, CONST, Datentypen und Deklarationen
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|