设为首页 加入收藏

TOP

Go中的有限状态机FSM的详细介绍(三)
2023-07-23 13:29:42 】 浏览:66
Tags:FSM
ot;afterEvent, current state:%s, Dst:%s \n", d.FSM.Current(), e.Dst) } func main() { door := NewDoor("测试") fmt.Printf("fsm current state: %s \n", door.FSM.Current()) err := door.FSM.Event(context.Background(), "open") if err != nil { fmt.Println(err) } fmt.Printf("fsm current state: %s \n", door.FSM.Current()) err = door.FSM.Event(context.Background(), "close") if err != nil { fmt.Println(err) } fmt.Printf("fsm current state: %s \n", door.FSM.Current()) }

执行结果:大家重点看current state何时发生的变化。

fsm current state: closed 
beforeOpen, current state:closed, Dst:open 
beforeEvent, current state:closed, Dst:open 
leaveClosed, current state:closed, Dst:open 
leaveState, current state:closed, Dst:open 
enterOpen, current state:open, Dst:open 
enterState, current state:open, Dst:open 
afterOpen, current state:open, Dst:open 
afterEvent, current state:open, Dst:open 
fsm current state: open 
beforeEvent, current state:open, Dst:closed 
leaveState, current state:open, Dst:closed 
enterState, current state:closed, Dst:closed 
afterEvent, current state:closed, Dst:closed 
fsm current state: closed 

参考资料:

looplab/fsm 源码阅读

有限状态机FSM

深入浅出理解有限状态机

有限状态机

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇浅谈errgroup的使用以及源码分析 下一篇grpc的使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目