简体中文
English 简体中文 繁體中文
Methodox 首页

状态

理解状态是让程序行为可预测的关键。

数据流上下文并不是“纯”的。每次执行时,某些东西可能已经发生了变化,下一次执行时我们可能会得到不同的结果。从大的层面看,文件和数据可能会被创建或删除;从小的层面看,图变量也可能导致执行行为发生变化。

在下面的示例中,我们对一个模块变量的值进行递增。

Declare: MyNumber

Get MyNumber
>| Add 1
>| Set MyNumber

MyNumber 首次创建时,会被赋予默认值 0。这段代码第一次运行时,MyNumber 变为 1。那么第二次运行时会怎样?

变量一旦声明,就只会被创建一次,因此它的值不会被重置。第二次执行 Get MyNumber 时,它会得到 1。所以设置之后的最终值将是 2。这个示例说明了状态如何改变程序的行为。

状态是某个事物当前存储的值,它在多次执行之间持续存在,并可能影响之后的行为。换句话说,状态是程序随时间记住的任何数据,使得接下来发生的事情可以取决于之前发生的事情。

在这个示例中:

  • MyNumber 是状态
  • 它的值随时间变化(0 → 1 → 2)
  • 由于状态已经改变,每次运行的行为都不同

用法

状态在数据流上下文中非常有用,下面给出两个示例。

用户购物车

在电子商务网站中,“购物车”页面可能取决于当前的商品——如果购物车是空的,我们就不显示“去结算”。

空购物车状态

你的购物车

你的购物车是空的。

有商品的购物车状态

你的购物车
商品 A $10
商品 B $15
合计:$25

应用/游戏的输入行为

在图形应用程序中,用户单击按钮时可以改变事物的状态,例如地图的缩放级别。

备注

通常,状态不会在数据流上下文中被直接修改,而是可能出现在数据流上下文所使用的子图中。

(截图)