在 Rails 应用程序中真的需要“#frozen_string_literal: true”???我需要把它放在每个文件中吗?

Eli*_*lva 3 ruby ruby-on-rails ruby-on-rails-5

我正在编辑的 rails 应用程序的每个文件都显示此警告,missing frozen string literal comment我知道这用于保留内存并避免为所有字符串文字重新分配内存,但是是否有必要在 rails 上使用或默认启用?如果是这样,如何在全球范围内启用它?

Joã*_*des 8

不,默认情况下它没有启用。

但是,您可以使用 Rubocop 将其附加到文件的顶部,并带有Rubocop::Cop::Style::FrozenStringLiteralComment。这是一个可自动纠正的警察。

根据Holger Just 的说法:

您实际上可以通过使用 ruby​​ 调用 ruby​​ 解释器来全局启用它--enable=frozen-string-literal。但是,这通常是一个坏主意,并且会以各种微妙的方式中断,除非您非常确定所有 gem 和依赖项中的所有文件实际上都期望冻结文字(通常情况并非如此)

  • 您实际上可以通过使用 `ruby --enable=frozen-string-literal` 调用 ruby​​ 解释器来全局启用它。但是,这通常是一个坏主意,并且会以各种微妙的方式中断,除非您非常确定所有 gem 和依赖项中的所有文件实际上都期望冻结文字(通常情况并非如此) (4认同)