swift - swift 为什么要使用扩展程序
问题描述
我对一般的编码和 swift 比较陌生,但我正在学习 SQLite 教程(https://www.raywenderlich.com/385-sqlite-with-swift-tutorial-getting-started)。我不明白在这里使用扩展的理由。我已经创建了一个自定义类来包装所描述的 SQL 连接,但我对扩展的理解是扩展现有类以向该类添加功能。鉴于我已经编写了自定义类,为什么我不将任何需要扩展的代码放入类本身?
这是扩展代码;
https://www.raywenderlich.com/385-sqlite-with-swift-tutorial-getting-started
extension SQLiteDatabase {
func prepareStatement(sql: String) throws -> OpaquePointer? {
var statement: OpaquePointer? = nil
guard sqlite3_prepare_v2(dbPointer, sql, -1, &statement, nil) == SQLITE_OK else {
throw SQLiteError.Prepare(message: errorMessage)
}
return statement
}
}
我的实现基本相同,但转储到类本身......
class SQLiteDatabase {
<stuff>
func prepareStatement(sql: String) throws -> OpaquePointer? {
var statement: OpaquePointer? = nil
guard sqlite3_prepare_v2(dbPointer, sql, -1, &statement, nil) == SQLITE_OK else {
throw SQLiteError.Prepare(message: errorMessage)
}
return statement
}
} // End Class
任何人都有洞察力,我显然错过了一些东西,但我不知道它是什么?
解决方案
推荐阅读
- r - 使用 R 编程的 Windrose 图中的标题标签和附加方向
- python - 熊猫加权统计
- javascript - pdfjs在包含非标准字符时无法查看PDF
- javascript - react-chart-js-2 - 在标签上添加标点符号?
- vue.js - Vuex 状态未设置为 getter
- unity3d - 为什么 hit.point 在同一光线投射中重置为 0,0,0?
- python - 试图用 txt 数据创建一个列表数组,Python
- json - 尽管所有其他对象都可以正常工作,但每个循环的车把都无法正常工作
- wordpress - WordPress 的 Astra Pro 主题为什么不显示徽标?
- c++ - c ++试图在元组向量上使用带有比较函数的lower_bound但错误:没有匹配函数调用'get <0>(const std :: tuple)'