【发布时间】:2015-09-15 23:21:58
【问题描述】:
我有三个函数A、B 和C。我需要将A 和B 传递给C。我该怎么做?
def A a
end
def B b
end
def C( &f1, &f2 ) # syntax error, unexpected ',', expecting ')'
f1.call 123
f2.call 234
end
def C( f1, f2 ) # this one ok
f1.call 123
f2.call 234
end
C( &A, &B) # syntax error, unexpected ',', expecting ')'
【问题讨论】:
-
不,它不是,但它有一个很好的提示..
-
你可以使用
Object#public_send例如def c(f1,f2); public_send(f1,123);public_send(f2,234);end;和所有c(:a, :b)但需要此功能的原因是什么,您确定没有更好的解决方案吗? ruby 中也只有常量大写;方法定义应该是更低的snake_cased。 -
@engineersmnky 这足以成为一个答案。正是我推荐的,尤其是命名部分。