Переменные инициализаторы
 
Переменные инициализаторы поддерживаются для инициализации массивов, переменных и пользовательских типов.

Синтаксис

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

См. также