У меня есть некий конечный автомат. Итак, у меня есть состояния:
const (
state1 = iota
state2
state3
exit
)
Кроме того, у меня есть chan
:
stateMachine := make(chan int)
Я поставил первое состояние:
stateMachine <- state1
И затем, Я ввожу в бесконечное l oop вот так:
for {
select {
case state := <- stateMachine:
switch state {
case state1:
fmt.Println("state1")
stateMachine <- state2
case state2:
fmt.Println("state2")
stateMachine <- state3
case state3:
fmt.Println("state3")
stateMachine <- exit
case exit:
fmt.Println("Exit")
os.Exit(0)
}
}
}
Но это не работает.
https://play.golang.org/p/s5uYJy-fMKe