0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Ruby】frozen_string_literal: trueとは?

Last updated at Posted at 2023-07-30

Ruby on Railsでのコーディングの際、frozen_string_literal: trueというコードが先頭に実装されている場面をよく見かけ、なんだろう?と思い調べてみました。

備忘録としてこちらに残しておきます。

コード

ruby
frozen_string_literal: true

frozen_string_literal: trueって何?

  • このコードfrozen_string_literal: trueは、Rubyファイルの先頭に書かれるマジックコメントの一つである。
  • このマジックコメントがあると、そのファイル内で定義された文字列リテラル(" "' 'で囲まれた文字列)は全て凍結される。つまり、それらの文字列は不変になり、後から変更できなくなる。
  • なぜこんなことをするのかというと、処理の高速化やメモリの節約につながるから。文字列の変更が頻繁に行われると、その都度新しい文字列オブジェクトが生成されてメモリを消費する。しかし、文字列を凍結してしまえば、その心配がなくなる。

その他、参考になった記事の引用

#frozen_string_literal: true がある場合
text1 = 'Hello world'
text2 = 'Hello world'
puts text1.object_id == text2.object_id

引用:Rubyで #frozen_string_literal: true というマジックコメントを付ける意味

その他、参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?