Variable Initializers
 
初始化数组,变量和UDT支持变量初始化。

语法

Dim scalar_symbol [AS DataType] = expression
Dim array_symbol ([lbound TO] ubound ) [AS DataType] => { expression [, ...] }
Dim udt_symbol AS DataType = ( expression [, ...] )

说明

数组,变量和UDT可以在使用Dim声明时给出一个值,其语法如上所示。请注意初始化不同类型之间的重要区别。标量变量被初始化为正常赋值,使用等号。UDT和数组被赋值一个等号,后跟大于符号(= >))。数组值以逗号分隔的值由大括号括起来,UDT值以括号括起来的逗号分隔值给出。

这些初始化变量的方法可以嵌套在一起,用于复杂的赋值。例如,要初始化一个多维数组:

Dim array(1 To 2, 1 To 5) As Integer => {{1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}}

在此声明中,最左边的维度的值作为5索引数组给出。嵌套允许初始化任何维度的数组。

UDT和数组也可以彼此嵌套。例如,以下代码声明并初始化UDT数组。

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的新功能

参考