ZetCode

FreeBasic Var 关键字

最后修改于 2025 年 6 月 23 日

FreeBasic 的 Var 关键字允许进行类型推断的变量声明。它根据初始化表达式自动确定变量类型。这使得代码更简洁,同时保持了类型安全。

基本定义

在 FreeBasic 中,Var 是一个用于声明具有隐式类型的变量的关键字。编译器在编译时从初始化表达式中推断出变量类型。

使用 Var 声明的变量仍然是强类型的。类型在声明后是固定的。这与类型可以在运行时更改的动态类型不同。

基本 Var 声明

本示例展示了 Var 关键字的最简单用法。

var_basic.bas
Var number = 42
Var message = "Hello, FreeBasic!"

Print "number is: "; number
Print "message is: "; message 

在这里,我们使用 Var 声明了两个变量。编译器将 number 推断为 Integer,将 message 推断为 String。

带数字类型的 Var

Var 可与 FreeBasic 中的所有数字类型配合使用。

var_numeric.bas
Var intValue = 100
Var floatValue = 3.14159
Var doubleValue = 2.718281828459045

Print "intValue: "; intValue
Print "floatValue: "; floatValue
Print "doubleValue: "; doubleValue

这演示了 Var 与不同的数字字面量一起使用。Integer 字面量会产生 Integer 类型,而浮点数字面量会根据精度产生 SingleDouble 类型。

函数声明中的 Var

Var 可用于函数内的局部变量。

var_function.bas
Function CalculateArea(radius As Double) As Double
    Var pi = 3.141592653589793
    Var area = pi * radius * radius
    Return area
End Function

Var circleArea = CalculateArea(5.0)
Print "Area of circle: "; circleArea

CalculateArea 函数内部,我们将 Var 用于常量和中间计算。类型被正确地推断为 Double,以匹配函数参数和返回类型。

带用户定义类型的 Var

Var 可与 FreeBasic 中的用户定义类型 (UDT) 一起使用。

var_udt.bas
Type Person
    firstName As String
    lastName As String
    occupation As String

    Declare Constructor(firstName As String, lastName As String, occupation As String)
End Type

Constructor Person (firstName As String, lastName As String, occupation As String)
    This.firstName = firstName
    This.lastName = lastName
    This.occupation = occupation
End Constructor

Var p = Person("John", "Doe", "gardener")
Print "First name: "; p.firstName; ", Last name: "; p.lastName; ", Occupation: "; p.occupation

此示例展示了 Var 与用户定义类型一起使用。编译器从构造函数调用中正确地将类型推断为 Person。语法变得更简洁,同时保持了类型安全。

本教程介绍了 FreeBasic 的 Var 关键字,并通过实际示例展示了其在不同场景下的用法。Var 使代码更简洁,同时保持了 FreeBasic 的强类型特性。

作者

我叫 Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直撰写编程文章。至今,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出所有 FreeBasic 教程