ruby - 我应该将 ruby 单行 if 语句拆分为多行 if 语句,因为该行很长吗?
问题描述
我有一个很长的 ruby 单行语句,大约 200 个字符。根据ruby style guide,单行 if 语句在这里更受青睐,因为正文是单行的。
address = Module::InnerModule::Class.new(long_address) if Module::Class.new(long_address).is_good?
但是,200 个字符远远超过了通常的行长阈值(通常最多为 120)。我应该将 if 语句拆分为多行语句以减少行长(还是应该接受该行很长)?
if Module::Class.new(long_address).is_good?
address = Module::InnerModule::Class.new(long_address)
另外,如果分割后线路仍然很长怎么办?这里的最佳做法是什么?我是 Ruby 新手,所以我会很感激任何关于最佳实践的建议。
解决方案
除了样式问题,如果您想保持当前语义,您可以在某些关键字和运算符处换行,而无需使用反斜杠转义换行符。例如:
address =
Module::InnerModule::Class.new(long_address) if
Module::Class.new(long_address).is_good?
否则,更改您的语义或重构您的代码以适合您所需的行长和选择的样式。关于如何拆分行的问题是可以回答的,但是拆分、缩进或重构的“最佳”方式在很大程度上是主观的,并且主要是可读性和意图的结合。
推荐阅读
- javascript - 您好,如何单击 ctrl + 鼠标左键单击。在 webdriver.io js 中
- python - 多维 Tiff 作为 TensorFlow 输入
- javascript - 组合对象数组,然后将它们显示给相关人员
- kotlin - 传入自定义baseadapter Listview的不同大小的两个Arraylist
- excel - 以基于单元格的动态文件名和文件夹导出为 PDF
- c - 由于原型未定义,它给了我一个错误?
- adobe - pdftk,复制文件而不带注释和注释
- python - ESP32 重置后,ESP32 和 python 脚本之间的 TCP 套接字不起作用
- json - 每当新的 json 文件下载到特定文件夹(Ubuntu VM 实例 GCP)时,自动在终端中执行命令
- c - 打印对角线元素之和的差(左 - 右和右 - 左)