Skip to content

Commit e6fe61d

Browse files
committed
Move images to statics/images
1 parent 02ab9a8 commit e6fe61d

File tree

7 files changed

+6
-6
lines changed

7 files changed

+6
-6
lines changed

content/post/2024-11-26-typed-fsm-zig.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ typed-fsm-zig 是一种编程的思想,掌握这种思想就能方便的使用
4040
ATM 代表自动取款机,因此它的代码的逻辑就是模拟自动取款机的一些行为:插入银行卡,输入pin,检查pin,取钱,修改pin。
4141

4242
它的状态机整体如下:
43-
![ATM](data/2.1-1.png)
43+
![ATM](/images/typed-fsm-zig-images/2.1-1.png)
4444

4545
图中椭圆形表示状态,箭头表示消息。
4646
它包含五种状态:exit, ready, cardInserted, session, changePin。
@@ -52,13 +52,13 @@ ATM 代表自动取款机,因此它的代码的逻辑就是模拟自动取款
5252
这代表了一种循环,表示用户输错了pin,但是可以再次尝试输入pin,当然我们要求最多可以尝试三次。
5353

5454
整个程序效果如下:
55-
![ATM](data/2.1-2.png)
55+
![ATM](/images/typed-fsm-zig-images/2.1-2.png)
5656

5757
这里注意消息Update, 它代表跟新pin,同时将状态转从changePin换到ready。
58-
![ATM](data/2.1-4.png)
58+
![ATM](/images/typed-fsm-zig-images/2.1-4.png)
5959

6060
实际的表现就是在changePin的界面中我们修改pin,然后点击Change按钮触发Update消息,修改pin,并返回到ready界面。
61-
![ATM](data/2.1-3.png)
61+
![ATM](/images/typed-fsm-zig-images/2.1-3.png)
6262

6363
接下来的文章中我将修改Update的行为,并展示在这个过程中类型系统如何帮助我快速调整代码。
6464

@@ -78,7 +78,7 @@ ATM 代表自动取款机,因此它的代码的逻辑就是模拟自动取款
7878
我们修改这里,把它变成.cardInserted , 这代表了我们要求跟新完pin之后进入cardInserted界面重新输入新的pin,这看着是个合理的要求。
7979
8080
新的状态图如下:
81-
![ATM](data/2.2-1.png)
81+
![ATM](/images/typed-fsm-zig-images/2.2-1.png)
8282
8383
8484
这时如果我重新编译代码,那么类型系统就会产生下面的错误:
@@ -119,7 +119,7 @@ referenced by:
119119
120120
这一节中我们尝试移除changePin状态,看看类型系统会给我们什么反馈。
121121
如果移除changePin,新的状态图如下:
122-
![ATM](data/2.3-1.png)
122+
![ATM](/images/typed-fsm-zig-images/2.3-1.png)
123123
124124
重新编译项目,将获得类型系统的反馈
125125
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)