2016-11-08 16 views
3

Tの型を何らかの形でチェックできますか?このタイプがArrayなどであることを確認したいのですが。これを行うには一般の種類

func request<T: Mappable>(completionHandler: (Result<T>) -> Void) { 

} 

答えて

2

一つの方法はそうのように、メソッドをオーバーロードすることです:私はどこかにあなたが定義されていることを仮定している

private func request<T: Mappable>(isArray: Bool, completionHandler: (Result<T>) -> Void) { 
    if isArray { 
    print("is array") 
    } else { 
    print("is not array") 
    } 
} 

func request<T>(completionHandler: (Result<Array<T>>) -> Void) { 
    request(isArray: true, completionHandler: completionHandler) 
} 

func request<T: Mappable>(completionHandler: (Result<T>) -> Void) { 
    request(isArray: false, completionHandler: completionHandler) 
} 

extension Array: Mappable {} 
+0

感謝を!それは本当に面白いです:) –