Rails 2.3 的Magic注釋frozen_string_literal

Matz 決定在在Ruby3.0中默認凍結(jié)字符串,來提高程序的性能

為了有個過渡的過程,在Ruby2.3?增加了一個魔法注釋

# frozen_string_literal: true

那這個有什么用呢?

我們應該知道?字符串有一個這樣的方法就是

freeze, 它是我們主動用來凍結(jié)字符串

假設代碼我們使用

#app.rb

#凍結(jié)該字符串

CON = "string".freeze

#判斷該字符串時候被凍結(jié)

p CON.frozen?

#嘗試修改

CON << "12"

puts CON

得出結(jié)果是:

》》 true??

》》app.rb:10:in `': can't modify frozen String (RuntimeError)

得出的結(jié)果是我們無法修改被凍結(jié)的字符串

如果我們沒有使用?freezen去凍結(jié)該字符串,就能去修改字符串,但是會提示而已

在Ruby2.3新加的這行注釋?放在?文件的頭部,它就會默認將字符串凍結(jié)

# frozen_string_literal: true

CON = "string"

#判斷該字符串時候被凍結(jié)

p CON.frozen?

#嘗試修改

CON << "12"

puts CON

得出和前面一樣的結(jié)果是:

》》 true

》》 app.rb:7:in `': can't modify frozen String (RuntimeError)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容