我想以更像 Ruby 的风格为 Ruby 编写代码,但在处理参数传递时遇到了问题。
我必须看看是否ABC
为零。如果ABC
是 nil,我会将另一个符号传递给dosomething
,如果不是,我将传递另一种类型的哈希值来计算。
由于 Ruby 不像 Java,它可以传递不同类型的参数(不同的键)。
我怎样才能使下面的代码更漂亮?
do_manything
将, do_otherthings
,合并do_manythings_again
到一个函数中不是我的答案,因为我会dosomething
在代码中的很多地方调用:
if ABC.nil?
Apple.dosomething (:foo => DEF) { |a|
a.do_manything
a.do_otherthings
a.do_manythings_again
}
else
Apple.dosomething (:bar => ABC) { |a|
a.do_manything
a.do_otherthings
a.do_manythings_again
}
end