飞不高 发表于 2024-8-7 23:39:08

Swift 5.9 Macros 有哪些新更新

https://i-blog.csdnimg.cn/blog_migrate/aadffb113c7529bb0a991c3f73e8f846.gif


前言

固然 Swift 6 已经在地平线上浮现,但 5.x 版本仍然有很多新功能-更简朴的 if 和 switch 用法、宏、非可复制范例、自界说 actor 执行器等等都将在 Swift 5.9 中推出,再次带来了一个巨大的更新。
Macros(宏)

Macros(宏)在 Swift 中被引入,此中 SE-0382、SE-0389 和 SE-0397 结合起来,允许我们在编译时创建可以或许转换语法的代码。
在像 C++ 这样的语言中,宏是一种对代码进行预处置处罚的方式,可以在代码被主编译器看到之前对其进行文本替换,从而天生那些你不想手动编写的代码。
Swift 的宏类似,但功能更强大,因此也更加复杂。还允许我们在编译前动态操作项目的 Swift 代码,从而在编译时注入额外的功能。
必要了解的关键信息

宏是安全的范例,不但仅是简朴的字符串替换,因此必要准确告诉宏它将处置处罚的数据。
在构建阶段作为外部程序运行,而且不属于主应用目标。
宏被分解为多个较小的范例,例如 ExpressionMacro 用于天生单个表达式,AccessorMacro 用于添加 getter和setter,ConformanceMacro 用于使范例符合某个协议。
宏与分析后的源代码一起工作,可以查询代码的各个部门,例如正在操作的属性的名称、范例,或者结构体内部的各种属性。
宏在一个沙盒中工作,只能在给定的数据上操作。
末了一个部门最重要,Swift 的宏支持是基于 Apple 的 SwiftSyntax 库构建的,用于理解和操作源代码。必须将其作为宏的依赖项添加到项目中。
环境准备

了解完 Swift 宏的基本信息之后,终于我们可以进入到实战环节了,工欲善其事必先利其器,首先我们必要做好以下准备


[*]macOS Ventura 13.3 以上操作系统
[*]Xcode 15 以上,本文使用的版本是15.0 beta (15A5160n)
[*]Swift 入门级语法(掌握 Hello World 的 4 种写法
页: [1]
查看完整版本: Swift 5.9 Macros 有哪些新更新