例如,我有如下代码:
case opt when "opt1" method1(param1, param2) when "opt2" method2(param1, param2, param3) end
请教有没有好方法避免使用 case...when,这里每个 when 里面调用的处理方法传的参数也是不一样的。 动态方法调用?用 block 是否可行?
如果可能最好是在 method 里面改,接受动态的 hash options。
#1 楼 @billy 谢谢关注!我觉得用动态方法调用,方法名和参数列表提前配置在一个 hash 中可以达到要求。不知道用 block/lambda/proc 之类的能否做到
这个 case when 很好呀!为啥要避免,为了动态而动态这是病啊,得治!
#3 楼 @hooopo 赞同,为什么要避免啊
可以把各个 opt 封装为类,再使用 duck typing
换成 if else。。。