Ruby 代码格式化工具
指导
Ruby 代码格式化工具
粘贴您的 Ruby 代码,并立即将其格式化为符合标准 Ruby 风格:2 个空格缩进,运算符间距一致,删除末尾空白字符,以及整洁的块结构。该格式化器完全在您的浏览器中运行,因此您的代码永远不会离开您的机器。
如何使用
- 将您的 Ruby 源代码粘贴到输入区域,或点击 尝试一个示例 加载示例。
- 选择缩进大小(2 个空格是 Ruby 社区的默认值)。
- 切换 排序 require / require_relative 如果您希望导入块按字母顺序重新排列。
- 切换 在方法定义之间插入空行 以获得更清晰的类体。
- 点击 格式,然后复制或下载结果。
特征
- 标准 Ruby 风格 – 2 个空格缩进,不使用制表符,不保留末尾空白。
- 操作符间距 – 运算符周围保持一致的空格
=,=>,比较和复合赋值运算符。 - 块感知缩进 – 识别
class,module,def,if,case,begin,do,以及匹配end/}标记。 - 安全的 heredoc –
<<~,<<-,以及裸 heredoc 内容保持原样,因此多行字符串保持完整。 - 修饰符形式感知 – 单行末尾的
if,unless,while,并且until不被视为块打开符。 - 可选的 require 排序 – 按字母顺序排列文件顶部的
require/require_relative块。 - 可选的方法间距 – 在相邻方法定义之间插入空行以提高可读性。
- 隐私优先 – 所有操作都在浏览器中运行,无需上传,无需日志记录。
常问问题
-
为什么 2 个空格缩进被认为是 Ruby 风格?
Ruby 社区通过 Ruby 风格指南和原始 RuboCop 默认设置很早就确立了 2 个空格缩进。2 个空格缩进使深度嵌套的块(迭代器中的闭包、嵌套类、case 语句中的 when 分支)在水平方向上紧凑,这与 Ruby 偏好短方法和表达性块语法相辅相成。大多数流行的 Ruby 项目,包括 Rails,都遵循这一约定。
-
do...end 和大括号块的区别是什么?
功能上,
do...end且{ ... }描述了相同的构造——一个传递给方法的块——但由于运算符优先级的不同,它们的绑定方式不同。do...end松散绑定(因此arr.each do |x| ... end.size调用.size的结果,而不是块的返回值),而each则紧密绑定到最近的方法调用。风格指南通常将大括号保留给单行块,{ ... }用于多行块。do...endRuby 中 if 和 unless 的修饰形式是如何工作的? -
Ruby 允许您在语句后放置一个条件,例如
。这被称为
return nil if value.nil?修饰形式 。它在语法上是一个单一表达式,而不是一个块,因此不需要一个。修饰形式对于简短的守卫条件读起来自然,但对于复杂条件,通常避免使用,而采用多行end块会更清晰。if什么是 heredoc 以及为什么更偏好波浪线 heredoc? -
Heredoc 是一种多行字符串字面量,以
开头,以包含仅
<<TAG的行结尾。普通的TAG要求关闭标签从第零列开始,这与缩进代码冲突。<<TAG允许关闭标签缩进,但保持正文的每一行完全不变。<<-TAG(在 Ruby 2.3 中引入的波浪线 heredoc)会从正文的每一行中移除最小的公共前导缩进,因此字面量可以与周围代码的缩进匹配,而不会在生成的字符串中泄露空格。<<~TAG在此粘贴您的 Ruby 代码...
