Как можно сложить целочисленные кортежи? Я наткнулся на этот пост , но я получаю сообщение об ошибке:
Тип аргумента '(Int, Int)' не соответствует ожидаемому типу 'Числовой'
Когда я пытаюсь использовать кортеж из массива. Я не знаком с дженериками, поэтому даже не знаю, с чего начать исправлять эту функцию, чтобы она соответствовала моему коду. Любой совет?
func calculate() {
let testArray = [(0, 0), (0, 7), (7,7), (7,0)]
let nearbyObjects = [(-1, -1), (0, -1), (1, -1), (-1, 0), (1, 0), (-1, 1), (0, 1), (1, 1)]
// this is where I get the error message
let sum = add(nearbyObjects[0])(testArray[0])
}
func add<T : Numeric>(_ a: T...) -> (_ b: T...) -> [T] {
return { (b: T...) -> [T] in
return zip(a, b).map { $0.0 + $0.1 }
}
}
В идеале я хотел бы иметь возможность добавить два кортежа из массива выше. Итак, (7,7) + (1, -1) = (8, 6)