1
在斯威夫特PromiseKit庫有使用有點奇怪的語法Alamofire例如:是什麼意思斯威夫特:「情況.success(讓字典):」
func login(completionHandler: (NSDictionary?, ErrorProtocol?) -> Void {
Alamofire.request(.GET, url, parameters: ["foo": "bar"])
.validate()
.responseJSON { response in
switch response.result {
case .success(let dict):
completionHandler(dict, nil)
case .failure(let error):
completionHandler(nil, error)
}
}
}
response
是Alamofire枚舉描述與相關2案件值:
public enum Result<Value> {
case success(Value)
case failure(Error)
(...)
什麼我不明白是什麼意思let
每個case:
線和哪裏的字典(或錯誤)從何而來?這個語法糖對於更冗長但更少混淆的東西?
好的,所以我們基本上測試枚舉是.success還是.failure,'(let xxx)'部分基本上是某種快捷方式獲取相關值的方式? – konrad
正確。你也可以把它寫成'case let .success(dict):' –
Swift語法有時候可以用它允許的快捷方式讓我感到驚訝。 :-) – konrad