Я пытаюсь построить немного универсальную интерполяционную функцию:
func interpolateNumber<T:SignedNumeric> (_ x0:T, with x1:T, bounds:ClosedRange<Double>, at:Double) -> Double{
return x0 + (x1-x0) * (at-bounds.lowerBound)/(bounds.upperBound-bounds.lowerBound)
}
, но компилятор жалуется:
Binary operator '*' cannot be applied to operands of type 'T' and 'Double'
Bounds.lowerBound и .upperBound имеют значение Double, и они должны быть.Как применить оператор «*» к SignedNumeric и Double?