主要观点:Elixir v1.17 已发布,引入了集合论类型到一些语言结构中,为开发者带来新警告以发现常见错误,还支持 Erlang/OTP 27 并新增相关数据类型和函数。
关键信息:
- 引入逐渐的集合论类型,通过警告让开发者提前发现代码中的问题,目前仅通过警告与开发者交互,后续会增加更多功能。
- 支持 Erlang/OTP 27,新增
json
模块和proc_lib:set_label/1
(在 Elixir v1.17 中为Process.set_label/1
),同时移除对 Erlang/OTP 24 的支持。 - 新增
Duration
数据类型和Date.shift/2
函数,用于处理日期等的偏移,且DateTime
能正确处理时区变化,还添加Kernel.to_timeout/1
函数。
重要细节: - 各种数据类型的集合论表示,如
binary()
等 indivisible 类型,atom()
可分类型,map()
和 structs 的开闭情况等。 - 具体的警告示例,如访问结构体拼写错误字段、结构比较错误等在编辑器中的显示。
- 新的
Keyword.intersect/2,3
函数、Mix profiler 变化、Kernel.is_non_struct_map/1
guard 以及 Elixir 的 Logger 相关更新等。完整变更可查看全发布说明。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。