Ruby 3.4.0第一預覽版釋出,替預設啟用凍結字串(Frozen String Literals)作準備。從該版本開始,未包含frozen_string_literal註解的字串被修改時,執行時程式會發出棄用警告,而這項變更的目的在於推廣凍結字串,所採取的過渡性措施。

在Ruby中,凍結字串是一種不可變的字串。當一個字串被凍結之後,就無法再被修改,而這有助於提高效能和減少不必要的記憶體分配。從Ruby 2.3開始,開發者可以使用frozen_string_literal: true註解,將檔案中的所有字串預設為凍結狀態,如此便可在編寫和執行程式時,避免意外的字串修改,進而提升程式的穩定性和效能。

Ruby在2.3版本中加入frozen_string_literal: true註解時,原本預計要在Ruby 3.0時預設啟用,但這個計畫因為會造成大量相容性問題而被放棄,但是Ruby創始人松本行弘(Yukihiro Matsumoto,Matz)仍希望未來可預設啟用這項功能。

為了要讓這項功能可行,需要合理的搬遷計畫,解決向後相容問題,因為立刻啟用將會破壞許多現有程式碼,所以開發團隊引入了棄用期,這個過渡會發出棄用警告,當未來會被凍結的字串被修改時發出警告。

儘管添加棄用警告可能造成開發者不滿,但是官方根據過往經驗,起初在Ruby 2.7引入關鍵字參數棄用時,社群也出現許多抱怨的聲音,但是最終仍接受,因此現在官方也開始對修改凍結字串發出棄用警告,逐步推動凍結字串預設啟用進度。

熱門新聞

Advertisement