Переменные инициализаторы поддерживаются для инициализации массивов,
переменных и пользовательских типов.
Синтаксис
Dim scalar_symbol [AS
DataType] =
expression
Dim array_symbol ([
lbound TO]
ubound) [AS
DataType] => {
expression [, ...] }
Dim udt_symbol AS
DataType = (
expression [, ...] )
Описание
Массивам, переменным и определяемым пользователем типам могут быть присвоены
значения в момент их объявления, используя оператор
Dim,
с синтаксисом, показанным выше. Обратите внимание на важные различия между
инициализациями различных типов. Скалярные переменные инициализируются в
обычном порядке, с помощью знака равенства. Пользовательские типы и массивы
инициализируются символом (=>). Значения массивов заносятся с помощью
запятых в фигурных скобках, а значения UDT в обычных скобках.
Эти методы инициализации переменных могут быть вложенными друг в друга для
сложных заданий. Например, для инициализации многомерного массива:
Dim array(1 To 2, 1 To 5) As Integer => {{1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}}
В этой декларации значения для левого измерения даны как 5-индексные
массивы. Инициализация позволена для массивов любого уровня вложенности.
Определяемые пользователем типы и массивы могут быть вложены друг в друга
также. Например следующий код объявляет и инициализирует массив пользователь
cкого
типа.
Type mytype
var1 As Double
var2 As Integer
var3 As ZString Ptr
End Type
Dim MyVar(2) As mytype => _
{ _
(1.0, 1, @"Hello"), _
(2.0, 2, @"GoodBye") _
}
На уровне модуля, статические или глобальные переменные , если они
инициализируются, то должны это делать с помощью константных выражений. Если
это не так, то FreeBASIC сообщит об ошибке во время компиляции.
Отличия от QB
- Переменные инициализаторы - новое в FreeBASIC
См. также