Data
 
在编译时存储数据的声明。

语法

Data constant_expression1 [,constant_expression2 ]...

说明

Data存储在编译时评估的常量数字或字母表达式列表(-lang qb 除外),并存储为可以使用Read读入变量的常量。

程序中的所有Data语句都表现为单链表;在读取一个Data语句的最后一个元素之后,将读取以下Data语句的第一个元素。
程序不应在最后一个Data元素之后尝试Read.结果(在所有方言中)未定义,程序可能会崩溃(页面错误)。

Data语句只能在定义它们的模块中可见;它们必须只输入模块级代码。

Data常量只能是简单的类型(数字或字符串)。数字值可以作为数字字面值读入字符串。读入数字变量的字符串将由Val函数求值。Const可用作数据项,除-lang qb 方言之外,其名称被视为普通文本。

Restore label ”语句使第一个Data项目在label 下一个要读取的项目之后,允许用户选择要读取的特定数据段。

Data通常用于初始化变量。FreeBASIC还允许在Dim进行时初始化静态变量 - 有关详细信息,请参阅可变初始化器.

例子

'创建一个数组的5个整数和一个字符串来保存数据。
Dim As Integer h(4)
Dim As String hs
Dim As Integer readindex

'设置循环5次(5个数字...检查数据)
For readindex = 0 To 4

  '读取整数。
  Read h(readindex)

  '显示它。
  Print "数" ; readindex ; "=" ; h(readindex)

Next readindex

'间隔。
Print

'读一个字符串。
Read hs

'打印
Print  "String =" + hs

'等待按键。
Sleep

'退出程序。
End

'数据块
Data 3, 234, 435/4, 23+433, 87643, "好" + "再见!"


方言差异

  • -lang fb -lang fblite 将数据项视为在编译期间评估的常量表达式,其结果存储在程序中。
  • -lang qb 将未引用的单词(包括变量和常量的名称)视为文字字符串,并将其存储为不改变,如QBASIC中所示。未引用的字符串由逗号分隔,冒号或换行符表示数据语句的结尾。开始和结束时,未引用的字符串被修剪为空格。

与QB差别

  • -lang qb 方言之外,字母字符串文字必须用引号括起来,在QBASIC中,这是可选的。
  • 在QBASIC空项目评估为数字0 或空字符串,在FreeBASIC他们给出一个编译错误。在QBASIC中,语句结尾处的逗号作了一个额外的空项目,评估为0 或一个空字符串。在FreeBASIC中,它们发出编译错误。

参考