Elixir v1.18 主要改进:
类型系统:在 Elixir 生态系统的两个主要工作(集合论类型和语言服务器)中取得进展,新增内置 JSON 支持和单元测试库功能。
- 模式和返回类型的类型推断:正在进行将静态类型引入 Elixir 的研发工作,其类型系统是可靠、渐进且开发者友好的,可组合
dynamic()
与其他类型,v1.18 新增函数调用的类型检查、模式和返回类型的渐进推断,还增加了对元组和列表的支持以及几乎所有 Elixir 语言结构的类型检查,但不包括for
-comprehensions、with
和闭包。未来工作包括改进对地图、元组和闭包的类型检查,以及专注于完全的守卫类型推断。
- 模式和返回类型的类型推断:正在进行将静态类型引入 Elixir 的研发工作,其类型系统是可靠、渐进且开发者友好的,可组合
- 语言服务器监听器:引入编译器锁和监听器,解决语言服务器实现中重复编译的问题,改善编辑器工具和项目体验,如在 IEx 中实现自动重新加载。
- 参数化测试和 ExUnit 组:ExUnit 支持参数化测试,可在不同参数下多次运行测试模块,提高编译和运行效率;还具备指定测试组的能力,使不同组的测试可并发运行,增加开发和 CI 中的机器资源利用灵活性。
mix format --migrate
:mix format
命令新增--migrate
标志,可将 Elixir 中已弃用的结构转换为最新版本,但与也进行 AST 重写的宏结合使用时可能无效,此版本已执行的迁移包括规范化位串修饰符中的括号、将字符列表格式化为~c
sigils、将unless
转换为否定的if
等,未来将添加更多迁移。
- 其他 notable 变化:包括
PartitionSupervisor.resize!/2
用于运行时调整主管的分区数量,Registry.lock/3
用于简单的进程内键锁,PowerShell 版本的elixir
和elixirc
脚本以改善 Windows 上的开发体验等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。