💡
原文英文,约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。
- 标准库中的一些常量和方法被移除或更新。
❓
延伸问答
Ruby 3.4的主要改进是什么?
Ruby 3.4的主要改进包括将默认解析器更改为Prism、Socket库更新以支持Happy Eyeballs v2、引入块参数'it'等。
Ruby 3.4中引入的块参数'it'有什么作用?
块参数'it'使得引用块参数更为简便,提升了代码的可读性。
Ruby 3.4对字符串字面量的处理有什么变化?
Ruby 3.4引入了默认冻结字符串字面量的迁移路径,未使用冻结注释的字符串字面量会发出弃用警告。
Ruby 3.4中如何处理垃圾回收?
Ruby 3.4增强了垃圾回收配置,并引入了GC.config方法以访问垃圾回收器的配置。
Ruby 3.4中对数组的处理有什么新特性?
Ruby 3.4新增了Array#fetch_values方法,以支持从数组中获取多个值。
Ruby 3.4中对异常处理有什么更新?
Ruby 3.4中Exception#set_backtrace现在接受Thread::Backtrace::Location数组,增强了异常处理的灵活性。
➡️