首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于分解方法定义的惯用Ruby

用于分解方法定义的惯用Ruby
EN

Stack Overflow用户
提问于 2019-03-07 02:26:26
回答 3查看 68关注 0票数 0

我正试着把一条线切成碎片

代码语言:javascript
运行
复制
define_method("start_#{event}!") do |user_or_enrollment, setting_name = nil, node_id = nil|

分解这些长长的方法调用行的传统风格是什么?

EN

回答 3

Stack Overflow用户

发布于 2019-03-07 02:29:45

惯例是,你通常不会像那样拆线,你只需要处理它。即使你努力做到这一点,也不是所有的东西都能用短行简洁地表达出来。

缩短行的一种方法是缩短变量名的长度:

代码语言:javascript
运行
复制
define_method("start_#{event}!") do |on, setting = nil, node = nil|

或者使用options样式的定义:

代码语言:javascript
运行
复制
define_method("start_#{event}!") do |on, options = { }|

在这里你可以这样称呼它:

代码语言:javascript
运行
复制
start_x!(user, setting: setting_name, node_id: node.id)
票数 2
EN

Stack Overflow用户

发布于 2019-03-07 02:38:38

块参数可以拆分到多行中,这与定义方法参数时的方法相同:

代码语言:javascript
运行
复制
define_method("start_#{event}!") do |
                                     user_or_enrollment,
                                     setting_name = nil,
                                     node_id = nil
                                    |
  # method body
end

或者,您可以根据个人喜好而不同地缩进,例如

代码语言:javascript
运行
复制
define_method("start_#{event}!") do |
  user_or_enrollment,
  setting_name = nil,
  node_id = nil
|
  # method body
end

具体如何格式化由您决定。在这种情况下,不同的风格指南会推荐不同的东西。然而,他们通常都同意,如果可能的话,最好保持参数的数量很小,并尽量避免将参数或参数列表拆分到多行。

票数 1
EN

Stack Overflow用户

发布于 2019-03-07 02:48:54

这主要是基于意见。我会这样说:

代码语言:javascript
运行
复制
define_method(
  "start_#{event}!"
) do |user_or_enrollment, setting_name = nil, node_id = nil|
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55029882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档