在 swift 中声明变量
declare variable in swift
我有这段代码,我的问题是,如何声明变量“连接”到全局变量?我需要在我的项目中为其他功能共享连接
var 连接 = ???
do {
var configuration = PostgresClientKit.ConnectionConfiguration()
configuration.host = "127.0.0.1"
configuration.database = "example"
configuration.user = "bob"
configuration.credential = .scramSHA256(password: "welcome1")
let connection = try PostgresClientKit.Connection(configuration: configuration)
let text = "SELECT start();"
try connection.prepareStatement(text: text).execute()
} catch {
print(error)
}
我试过使用 struct,但我仍然对声明 conn 有问题 - 类型“[conn]”的值没有成员'prepareStatement'知道吗?
import UIKit
import PostgresClientKit
struct conn {
let conn : Connection
}
var myconnection = [conn]()
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
do {
var configuration = PostgresClientKit.ConnectionConfiguration()
configuration.host = "127.0.0.1"
configuration.database = "example"
configuration.user = "bob"
configuration.credential = .scramSHA256(password: "welcome1")
let aaa = try PostgresClientKit.Connection(configuration: configuration)
let bbb = conn ( conn: aaa)
myconnection.append(bbb)
let text = "SELECT start();"
try myconnection.prepareStatement(text: text).execute()
} catch {
print(error) // better error handling goes here
}
}
我不确定我是否理解您的意图,但我想我明白了您的问题。您的代码在此行失败:
try myconnection.prepareStatement(text: text).execute()
但是 myconnection
,正如您在上面声明的那样,属于 [conn]
:
类型
var myconnection = [conn]()
如果您想在数组的第一个元素上调用 prepareStatement(text:)
,您可以这样做:
try myconnection[0].conn.prepareStatement(text: text).execute()
您需要中间的 .conn
,因为该数组是 conn
结构的数组,其中 conn
属性实际上是 Connection
类型。
值得注意的是,至少在此函数中,您可以在 aaa
上调用 prepareStatement(text:)
,然后再从中创建 bbb
并将其存储在数组中。
我有这段代码,我的问题是,如何声明变量“连接”到全局变量?我需要在我的项目中为其他功能共享连接
var 连接 = ???
do {
var configuration = PostgresClientKit.ConnectionConfiguration()
configuration.host = "127.0.0.1"
configuration.database = "example"
configuration.user = "bob"
configuration.credential = .scramSHA256(password: "welcome1")
let connection = try PostgresClientKit.Connection(configuration: configuration)
let text = "SELECT start();"
try connection.prepareStatement(text: text).execute()
} catch {
print(error)
}
我试过使用 struct,但我仍然对声明 conn 有问题 - 类型“[conn]”的值没有成员'prepareStatement'知道吗?
import UIKit
import PostgresClientKit
struct conn {
let conn : Connection
}
var myconnection = [conn]()
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
do {
var configuration = PostgresClientKit.ConnectionConfiguration()
configuration.host = "127.0.0.1"
configuration.database = "example"
configuration.user = "bob"
configuration.credential = .scramSHA256(password: "welcome1")
let aaa = try PostgresClientKit.Connection(configuration: configuration)
let bbb = conn ( conn: aaa)
myconnection.append(bbb)
let text = "SELECT start();"
try myconnection.prepareStatement(text: text).execute()
} catch {
print(error) // better error handling goes here
}
}
我不确定我是否理解您的意图,但我想我明白了您的问题。您的代码在此行失败:
try myconnection.prepareStatement(text: text).execute()
但是 myconnection
,正如您在上面声明的那样,属于 [conn]
:
var myconnection = [conn]()
如果您想在数组的第一个元素上调用 prepareStatement(text:)
,您可以这样做:
try myconnection[0].conn.prepareStatement(text: text).execute()
您需要中间的 .conn
,因为该数组是 conn
结构的数组,其中 conn
属性实际上是 Connection
类型。
值得注意的是,至少在此函数中,您可以在 aaa
上调用 prepareStatement(text:)
,然后再从中创建 bbb
并将其存储在数组中。