繁體中文
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

應用/遊戲的輸入行為

在圖形應用程式中,使用者按一下按鈕時可以改變事物的狀態,例如地圖的縮放級別。

備註

通常,狀態不會在資料流上下文中被直接修改,而是可能出現在資料流上下文所使用的子圖中。

(截圖)