我正在解决 Chris Pine 的Learn to Program书中的一个问题。我已经定义了一个Pet
带有一些实例方法的类。在类定义之外,我正在尝试构建一个方法,该方法将采用字符串和Pet
类的实例并运行适当的实例方法。
def dispatch(command, pet)
dispatches = {'feed' => pet.feed,
'walk' => pet.walk,
'put to bed' => pet.putToBed,
'rock' => pet.rock,
'toss' => pet.toss}
dispatches[command]
end
但是,当dispatch
方法运行时,它会执行散列中出现的所有实例方法,而不仅仅是对应于command
. 它们按照它们在代码中出现的顺序执行,甚至在到达dispatches[command]
行之前。
我在这里做错了什么?