Var
 
Объявляет переменную, тип которого вытекает из выражения инициализатора

Синтаксис

Var [Shared] symbolname = expression[, symbolname = expression]

Описание

Var объявляет переменную, тип которого вытекает из выражения инициализатора. Нельзя явно указывать тип в декларации Var. Выражение инициализатора может быть константой или любой переменной любого типа.

Примечание: WString не поддерживается с Var, в связи с тем, что нет типа WString динамической длины. Это вряд ли изменится, из-за сложностей, связанных с обработкой Unicode.

Поскольку тип переменной выводится из того, что вы назначаете в него, полезно знать, как работают литералы. Любое литеральное число без десятичной точки по умолчанию Integer. Литеральное число с десятичной точкой по умолчанию Double. Смотрите ProPgLiterals для получения дополнительной информации.

Все выражения ZString, в том числе строковые литералы и разыменованные ZString Ptr, будут типом String.

Явные суффиксы могут быть использованы для литеральных переменных, чтобы изменить/уточнить их тип. Смотрите Literals и Variable Types для более подробной информацией о суффиксах, которые можно использовать для литералов.

Примечание: Суффиксы должны появиться на инициализаторе, не на переменной. Попытка использовать Var с переменной, которая имеет суффикс, вызовет ошибку при компиляции.

Пример

Var a  = Cast(Byte, 0)
Var b  = Cast(Short, 0)
Var c  = Cast(Integer, 0)
Var d  = Cast(LongInt, 0)
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 ptr
Var h  = @a      '' byte ptr
Var s2 = "hello" '' переменной длины string

Var ii = 6728   '' неявный integer
Var id = 6728.0 '' неявный double

Print "Byte: ";Len(a)
Print "Short: ";Len(b)
Print "Integer: ";Len(c)
Print "Longint: ";Len(d)
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 "Variable String: ";Len(s2)
Print
Print "Integer: ";Len(ii)
Print "Double: ";Len(id)

Sleep


Отличие от QB

  • Новое в FreeBASIC 0.17

Различия диалектов

  • Нет в наличии в диалекте -lang qb , но есть псевдоним __Var.

См. также