& 用于在表达式中读取变量值。本章覆盖赋值、复合赋值、
引用与作用域要点。
基本赋值
想复用中间结果时,可以把值赋给变量。使用= 即可创建或更新变量:
- 不需要
var、let等关键字,直接写name = expression即可创建或更新变量。 - 对同名变量再次赋值会覆盖先前的值,后一次赋值生效。
= 赋值外,Fluxon 还支持常见的复合赋值运算符:
引用运算符 &
在 Fluxon 中,始终显式区分「变量本身」和「变量里的值」。在表达式中读取变量的值时,需要在变量名前添加 &,
表示「取出该变量当前绑定的值」:
& 时需要注意:
&name可以出现在任意表达式的位置,用于取出当前作用域中对应变量的值。- 赋值语句左侧始终写作
name = ...,不会出现&name = ...这样的形式。 - 在函数体或控制流结构(如循环、分支)内部使用
&,可以直接访问外层已存在的变量。
&」:
作用域要点
Fluxon 的多种语法结构都会引入新的作用域:for、when等控制流结构以及函数体都会形成各自的作用域。- 在这些结构内部新建的变量,默认只在本作用域内可见。
- 在外层先声明并初始化变量。
- 在内部作用域中,通过赋值对该变量进行累积或更新。
条件分支中的作用域
when 或其他分支结构体内定义的变量,默认只在对应分支中可见:
localMsg = ... 这样的新变量名,则该变量只在当前分支块内有效,外层无法访问。
函数与嵌套作用域
函数体同样形成自己的作用域,函数参数和在函数内声明的变量不会泄漏到外层:& 引用外层变量,但应避免复用相同的变量名,从而遮蔽外层含义: