Swift 5.9 Macros 有哪些新更新

打印 上一主题 下一主题

主题 548|帖子 548|积分 1644



  
前言

固然 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 种写法

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

飞不高

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表