1
スウィフトPromiseKitライブラリでAlamofire例は、少し奇妙な構文を使用してあります。それはスウィフトにどういう意味:「ケース.success(dictのを聞かせて):」
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
は、関連するとの2例を説明Alamofire列挙型であります値:
public enum Result<Value> {
case success(Value)
case failure(Error)
(...)
私はlet
がそれぞれcase:
ラインとdictの(またはエラー)から来ないで何を意味している得ることはありませんか?この文法的な砂糖は、もっと冗長ではありますが、あまり混乱しないものですか?
基本的には、enumが.successまたは.failureであることをテストしており、 '(let xxx)'部分は基本的に、関連する値のショートカットゲッターの一種ですか? – konrad
正しい。また、 'case let .success(dict):' –
と書くこともできます。スウィフトシンタックスは、時にはそれが許すショートカットで私を驚かせることはありません。 :-) – konrad