💡
原文英文,约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。
- 标准库中的一些常量和方法被移除或更新。
➡️