变量

Felix提供了三种简单的形式来定义和初始化变量。这个 var binder用于定义变量,它将名称绑定到存储位置。

具有类型和初始化器的变量

变量可以用类型注释和初始化器定义。

var b : bool = true;
var i : int = 1;
var s : string = "Hello";
var d : double = 4.2;
var f : float = 4.2f;

指定的类型必须与初始化器的类型一致。

没有类型注释的变量

如果变量具有初始化器,也可以在不使用类型注释的情况下定义变量。

var b = true;
var i = 1;
var s = "Hello";
var d = 4.2;
var f = 4.2f;

在这些情况下,变量的类型就是初始化器的类型。

没有初始化器的变量

变量可以在没有初始化器的情况下定义。

var b : bool;
var i : int;
var s : string;
var d : double;
var f : float;

在这种情况下,变量将由底层C++默认初始化器初始化。如果基础C++类型没有默认初始化符,那么这样指定变量是错误的。

如果底层C++默认初始化器是微不足道的,那么存储不会被修改,那么Felix变量是未初始化的。

简单作业

赋值可用于赋值存储在变量位置的第一值,修改先前提供的显式初始化器的值,或修改基础C++默认初始化器提供的值。

var b : bool;
var i = 1;
b = true;
i = 2;

当控制流通过赋值时执行赋值。

可变起重

Var绑定相当于声明未初始化的变量和赋值。声明在当前范围内的位置不相关。初始化赋值的位置是。例如:

a = 1;
var b = a;
var a : int;

等于

var a = 1;
var b = a;