关于Swift镜像的思考

Swift镜像是Swift语言中功能最强大但尚未使用的功能之一。 使用动态提取类实例的元数据的能力

令人惊讶的是,Swift镜像非常简单。 下面的实现动态读取与Flower结构关联的属性,并将其打印在输出窗口上。

但是,我们要做的不只是在输出窗口上简单地打印它。 我们可以使用Swift镜像技术为简单的CRUD(创建读取更新删除)操作创建通用数据访问层。

这是使用Vapor SQLite提供程序的简单通用保存功能。

魔术发生在prepareInsertSQL函数中,该函数利用Swift镜像创建所需的sql。

在prepareInsertSQL中,我们动态创建插入实体所需的所需SQL。 用法如下所示:

现在,我们创建了一个非常基本的通用“保存”函数,该函数可以使用Swift镜像的功能来动态生成SQL并将数据插入SQLite数据库。