Работая с дженериками Swift, у меня есть следующий вопрос:
Эта функция работает, как и ожидалось, с типом Int:
func + (number: Int, vector: [Int]) -> [Int] {
var resArray:[Int]=[]
for x:Int in vector {
resArray.append(number+x)
}
return resArray
}
Я хочу, чтобы это работало с любым типом, где добавление имеет смысл. Я пробовал следующее:
func +<T:NSNumber> (number: T.Type, vector: [T.Type]) -> [T.Type] {
var resArray:[T.Type]=[]
for x:T.Type in vector {
resArray.append(number+x)
}
return resArray
}
Но строчка:
resArray.append(number+x)
сталкивается с проблемой, потому что число и x должны очевидно поддерживать сложение.
Как мне изменить свой код? Я полагаю, мне нужно добавить ограничение на тип. Я не совсем знаю, как.