【发布时间】:2019-03-06 18:26:26
【问题描述】:
我正在尝试将一条线切成碎片
define_method("start_#{event}!") do |user_or_enrollment, setting_name = nil, node_id = nil|
拆分这些长方法调用行的常规样式是什么?
【问题讨论】:
我正在尝试将一条线切成碎片
define_method("start_#{event}!") do |user_or_enrollment, setting_name = nil, node_id = nil|
拆分这些长方法调用行的常规样式是什么?
【问题讨论】:
惯例是你通常不会像那样拆线,你只是处理它。即使您努力做到这一点,也并非所有内容都可以整齐地表达为短线。
使行更短的一种方法是减少变量名的长度:
define_method("start_#{event}!") do |on, setting = nil, node = nil|
或者使用选项样式定义:
define_method("start_#{event}!") do |on, options = { }|
你怎么称呼它:
start_x!(user, setting: setting_name, node_id: node.id)
【讨论】:
块参数可以分成多行,就像定义方法参数时一样:
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
具体格式取决于您。在这种情况下,各种风格指南会推荐不同的东西。但是,他们通常都同意最好保持参数的数量较少,并尽可能避免将参数或参数列表拆分为多行。
【讨论】:
这主要基于意见。我会选择:
define_method(
"start_#{event}!"
) do |user_or_enrollment, setting_name = nil, node_id = nil|
【讨论】: