我正试着把一条线切成碎片
define_method("start_#{event}!") do |user_or_enrollment, setting_name = nil, node_id = nil|分解这些长长的方法调用行的传统风格是什么?
发布于 2019-03-07 02:29:45
惯例是,你通常不会像那样拆线,你只需要处理它。即使你努力做到这一点,也不是所有的东西都能用短行简洁地表达出来。
缩短行的一种方法是缩短变量名的长度:
define_method("start_#{event}!") do |on, setting = nil, node = nil|或者使用options样式的定义:
define_method("start_#{event}!") do |on, options = { }|在这里你可以这样称呼它:
start_x!(user, setting: setting_name, node_id: node.id)发布于 2019-03-07 02:38:38
块参数可以拆分到多行中,这与定义方法参数时的方法相同:
define_method("start_#{event}!") do |
user_or_enrollment,
setting_name = nil,
node_id = nil
|
# method body
end或者,您可以根据个人喜好而不同地缩进,例如
define_method("start_#{event}!") do |
user_or_enrollment,
setting_name = nil,
node_id = nil
|
# method body
end具体如何格式化由您决定。在这种情况下,不同的风格指南会推荐不同的东西。然而,他们通常都同意,如果可能的话,最好保持参数的数量很小,并尽量避免将参数或参数列表拆分到多行。
发布于 2019-03-07 02:48:54
这主要是基于意见。我会这样说:
define_method(
"start_#{event}!"
) do |user_or_enrollment, setting_name = nil, node_id = nil|https://stackoverflow.com/questions/55029882
复制相似问题