Crystal(编程语言)1.16.0 已发布,自版本 1.15.1 以来共有 162 项变更。一个显著的更新是重新实现了 `File.match?`,现在使用新的匹配算法来解决之前的错误,同时保持文档中描述的行为。通配符和 globstar 匹配得到了改进,例如 `**/a` 现在可以直接匹配 `a`,并且 globstar 匹配完整的路径段。模式解析也有所提升,分支中的子模式现在会尊重其语法上下文,并且特殊字符转义能够被正确识别。
其他变更包括对字符类语法的增强,现在支持像 `[a-]` 这样的范围,可以匹配 `a` 和 `-`。方法、宏和块的参数名称后缀(`?` 和 `!`)已被弃用,并发出警告以符合通用变量命名规则。在处理联合元素类型时,`Enumerable` 方法 `#sum` 和 `#product` 现在需要显式返回类型,将错误从运行时转移到编译时。
`HTTP::Request` 对类似绝对 URL 的资源字符串的解析已得到修正,这可能会影响现有代码。子命令的环境处理已更新,并且新增了一个预览功能——执行上下文(Execution Contexts),支持多线程或隔离的上下文。
此外,编译器 CLI 的增强和文档生成器的改进也被引入,使得 Crystal 1.16.0 成为开发者的一次重要更新。