与专业人士一起解读Ruby 3.4新闻(英文翻译)

与专业人士一起解读Ruby 3.4新闻(英文翻译)

💡 原文英文,约8900词,阅读约需33分钟。
📝

内容提要

Ruby 3.4于12月25日发布,主要改进包括默认解析器更改为Prism、Socket库更新以支持Happy Eyeballs v2、引入块参数“it”等。此版本专注于性能和兼容性提升,几乎没有语法变化,并引入了默认冻结字符串字面量的迁移路径和增强的垃圾回收配置。

🎯

关键要点

  • Ruby 3.4于12月25日发布,主要改进包括默认解析器更改为Prism。
  • Socket库更新以支持Happy Eyeballs v2。
  • 引入块参数'it',使得引用块参数更为简便。
  • 此版本专注于性能和兼容性提升,几乎没有语法变化。
  • 引入默认冻结字符串字面量的迁移路径,增强垃圾回收配置。
  • 块参数'it'的使用简化了代码的可读性。
  • 字符串字面量在没有冻结注释的情况下会发出弃用警告。
  • String#+@现在在修改字符串时会发出弃用警告。
  • 支持将nil作为关键字参数传递。
  • 不再允许在索引赋值中传递块。
  • Ruby 3.5中将保留顶层常量Ruby。
  • Array#fetch_values方法被添加以支持从数组中获取多个值。
  • Exception#set_backtrace现在接受Thread::Backtrace::Location数组。
  • Fiber调度器引入了阻塞操作的处理机制。
  • GC.config方法被添加以访问垃圾回收器的配置。
  • Hash.new现在接受可选的capacity参数以预分配内存。
  • Integer#**不再返回Float::INFINITY,而是直接计算结果。
  • MatchData#bytebegin和MatchData#byteend被引入以支持字节级别的匹配。
  • Object#singleton_method现在可以返回扩展模块中的方法。
  • Ractor现在允许在其内部调用require。
  • Range#size在不可迭代的范围上现在会引发TypeError。
  • Kernel#Float()现在接受省略小数部分的字符串。
  • Refinement#refined_class方法被移除,建议使用Refinement#target。
  • 标准库中的一些常量和方法被移除或更新。
➡️

继续阅读