3
Могу ли я как-то проверить тип T
. Я хочу проверить, что этот тип Array
или что-то еще.Тип общего назначения
func request<T: Mappable>(completionHandler: (Result<T>) -> Void) {
}
Могу ли я как-то проверить тип T
. Я хочу проверить, что этот тип Array
или что-то еще.Тип общего назначения
func request<T: Mappable>(completionHandler: (Result<T>) -> Void) {
}
Один из способов сделать это перегрузить метод, например, так:
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 {}
Спасибо! Это действительно интересно :) –