5 月 17 日消息,Ruby 3.4.0 首个预览版已发布,该版本将为默认启用冻结字符串字面量(Frozen String Literals)作准备,从该版本起,用户在修改未包含 frozen_string_literal“魔法注释”字符串时,软件会要求用户加上相关注释。
据介绍,Ruby 从 2.3 版本起引入了这项“冻结”机制,开发者可以使用 frozen_string_literal: true 魔法注释,使文件中的所有字符串字面量默认处于冻结状态,从而避免在开发者编写程序时意外修改了字符串,同时还能提升程序的稳定性和性能,减少不必要的 RAM 分配。
注意到。Ruby 在 2.3 版本中引入 frozen_string_literal 时,原计划在 Ruby 3.0 时默认冻结字符串字变量,但由于大量的兼容性问题,这一计划被推迟。不过 Ruby 创始人松本行弘(Yukihiro Matsumoto)仍希望“在未来”默认启用这一功能。
为了让这一功能的启用更加可行,需要一个合理的迁移计划来解决向后兼容性的问题。因此开发团队引入了一项“弃用计划表”,在用户使用 Ruby 3.4.0 修改没有相关魔法注释的字符串时,系统便会要求用户加上“frozen_string_literal”。
Ruby 团队表示,相关取舍是增强语言性能和可靠性方面的重要举措,尽管可能需要开发者进行一些调整,但最终目标是提供更高效、更稳定的编程环境。