方法,我有以下代碼:紅寶石:調用基於標準
class Engine
attr_accessor :isRunning
def initialize
@isRunning = false
@commands = ["left", "right", "brake", "accelerate", "quit"]
end
def start
self.isRunning = true;
while(self.isRunning)
command = gets.chomp!
if(@commands.include? command)
puts "OK."
else
puts "> #{command} Unknown Command."
end
if(command=="quit") then
self.stop
puts "Quitting!"
end
end
end
def stop
self.isRunning = false;
end
end
正如你所看到的,這是很簡單的,但是,我想弄清楚如何調用基於標準的方法。如果我想實現這樣的引擎類中的一堆方法,如methodOne和methodTwo:
@commands = ["left", "right", "brake", "accelerate", "quit", "methodOne", "methodTwo"]
def methodOne
end
def methodTwo
end
def parseCommand(command)
if(command=="methodOne") then
self.methodOne
end
if(command=="methodTwo") then
self.methodTwo
end
end
我可以調用這些方法minimalistically?現在,我不得不寫一大堆if語句,如果可以更優雅地完成,我寧願忽略它的未來維護。
地道:methodOne - > method_one。如果(條件) - >如果條件。而且,雖然正確,但幾乎沒有人使用「那麼」。 – tokland