触品科技 Fuxi 变量的赋值与约束

Fuxi中赋值与约束是两个重要的概念。

赋值(Assignment)是将某一特定的数值存放到变量所代表的一个特定的存储位置的过程。和C++、JAVA等语言不同的是,Fuxi的赋值是一个bool型函数,如果赋值成功,返回true,否则返回false。程序对变量进行赋值时,首先要检查该变量能否被赋值。一个变量能够被赋值的条件是:变量是自由变量或引用变量,同时待赋的值与变量有相同或兼容的类型。我们不能对约束变量赋值。

对变量的赋值,采用赋值符号(:=)。例如,

x := 100

除了‘:=’给变量赋值外,Fuxi语言还提供以下的自运算赋值形式:

赋值

实 例

等价形式

+=

x += 10

x := x + 10

-=

x -= 10

x := x - 10

*=

x *= 10

x := x * 10

/=

x /= 10

x := x / 10

%=

x %= 10

x := x % 10

&=

x &= 10

x := x & 10

|=

x |= 10

x := x | 10

^=

x ^= 10

x := x ^ 10

&&=

x &&= y

x := x && y

||=

x ||= y

x := x || y

++

x++

x := x + 1

x–

x := x - 1

约束(Binding)是将一个变量同一个表达式关联起来,在程序的其它地方对该变量的引用也就等同于对与其关联的表达式的引用。一个约束变量在其被释放(unbind)之前,其值是固定的,也就是它所代表的表达式的值。我们不能对一个约束变量赋值,也不能再把一个约束变量约束成另一表达式。

我们可以在变量的声明中,通过等号(=)将其约束为一个表达式,例如:

int x = Console.Readln().ToInteger()

另外,程序中在调用对象的方法时,通过模式的匹配和合一,将模式中的形式参数约束成实际的参数表达式。关于模式的匹配与合一,我们将在以后的章节中讨论。

值得注意的是,赋值是把一个值赋给变量,赋的是“值”,因此赋值前需要先对表达式进行计算,把计算的结果赋给变量。而约束是把同某一表达式的等价关系赋给变量,赋的是“约束关系”。在这种意义上,我们也可以把约束理解成一种“关系”赋值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值