听起来像你想要一台状态机:
require 'statemachine'
state_machine = Statemachine.build do
trans :_, :a, :a
trans :_, :B, :_
trans :a, :a, :aa
trans :a, :B, :aB
trans :aa, :a, :_, 'print 1'
trans :aa, :B, :aB
trans :aB, :a, :_, 'print 2'
trans :aB, :B, :_
end
"aaBaBaaaBaaa".each_char do |i|
state_machine.process_event(i)
end
state_machine.reset
puts
"aaaBaBaaaaBBaBaBa".each_char do |i|
state_machine.process_event(i)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |