やったこと
Ruby でマジックコメントの frozen_string_literal を使ってみます。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
調査
test.rb
# frozen_string_literal: true
a = 'abc'
puts a.frozen?
puts a.upcase
# 例外が発生します
puts a.upcase!
出力結果
$ ruby test.rb
true
ABC
Traceback (most recent call last):
1: from ruby-frozen.rb:9:in `<main>'
ruby-frozen.rb:9:in `upcase!': can't modify frozen String (FrozenError)