在哪里放置代码块
Where to place blocks of code
我正在尝试实现示例中显示的代码。例如,当我将它放在应用程序委托中时:
import SQLite
let db = Database("path/to/db.sqlite3")
let users = db["users"]
let id = Expression<Int64>("id")
let name = Expression<String?>("name")
let email = Expression<String>("email")`
看来还可以。但是当我去使用创建 table 代码时:
db.create(table: users) { t in
t.column(id, primaryKey: true)
t.column(name)
t.column(email, unique: true)
}
好像不太喜欢。我的理解是 table 创建代码需要进入一个方法。但是它属于哪个方法呢?还是完全采用一种新方法?
抱歉,如果问题看起来过于简单。我是 Swift 和 SQLite 的新手。 :-)
顶部块没问题,因为您只是在分配延迟加载的全局变量。
底部块实际上是在执行代码,并且必须发生在函数内部。这是一个示例结构:
import SQLite
struct User {
static let connection = Database()
static let table = connection["users"]
static let id = Expression<Int64>("id")
static let name = Expression<String?>("name")
static let email = Expression<String>("email")`
static func createTable() {
db.create(table: table) { t in
t.column(id, primaryKey: true)
t.column(name)
t.column(email, unique: true)
}
}
}
在其他地方(在另一个函数中),您可以调用 User.createTable()
来创建 table。
我正在尝试实现示例中显示的代码。例如,当我将它放在应用程序委托中时:
import SQLite
let db = Database("path/to/db.sqlite3")
let users = db["users"]
let id = Expression<Int64>("id")
let name = Expression<String?>("name")
let email = Expression<String>("email")`
看来还可以。但是当我去使用创建 table 代码时:
db.create(table: users) { t in
t.column(id, primaryKey: true)
t.column(name)
t.column(email, unique: true)
}
好像不太喜欢。我的理解是 table 创建代码需要进入一个方法。但是它属于哪个方法呢?还是完全采用一种新方法?
抱歉,如果问题看起来过于简单。我是 Swift 和 SQLite 的新手。 :-)
顶部块没问题,因为您只是在分配延迟加载的全局变量。
底部块实际上是在执行代码,并且必须发生在函数内部。这是一个示例结构:
import SQLite
struct User {
static let connection = Database()
static let table = connection["users"]
static let id = Expression<Int64>("id")
static let name = Expression<String?>("name")
static let email = Expression<String>("email")`
static func createTable() {
db.create(table: table) { t in
t.column(id, primaryKey: true)
t.column(name)
t.column(email, unique: true)
}
}
}
在其他地方(在另一个函数中),您可以调用 User.createTable()
来创建 table。