我想知道这两个声明之间是否有任何区别?
static var sessionConfiguration: URLSessionConfiguration = {
let myConfig = URLSessionConfiguration.default
let base64LoginString = EndpointController.getBase64StringLoginWithUserAndPasswordV2()
myConfig.httpAdditionalHeaders = ["Authorization" : base64LoginString]
return myConfig
}()
static func getURLSessionConfigurationDefault() -> URLSessionConfiguration {
let myConfig = URLSessionConfiguration.default
let base64LoginString = EndpointController.getBase64StringLoginWithUserAndPasswordV2()
myConfig.httpAdditionalHeaders = ["Authorization" : base64LoginString]
return myConfig
}
在var t = { }()
语法中:{ }
是一个返回值的函数,()
调用该函数一次以设置变量t
的初始值。您可以稍后将t
更改为其他内容,因为它是var
。该语法类似于var a = 42
,但您将其设置为运行函数的结果,而不是42,例如:{ return 42 }()
,但该函数并不是每次读取(或写入(值t
时都运行
getURLSessionConfigurationDefault() -> URLSessionConfiguration
总是创建某个事物的新实例,并返回该新实例——函数的结果。