Недавно я написал несколько вспомогательных функций для стандартных математических операций (+, -, *, /) для обработки статистики без запаздывания, поэтому явное приведение чисел не требуется
Double(8)/Double(3) // can be written as 8/3
Это работало без хлопот,пока я не укажу на какое-то ошибочное поведение оператора деления, то есть:
func / <F: BinaryFloatingPoint, I: BinaryInteger>(lhs: F, rhs: I) -> F {
return lhs / F(rhs)
}
func / <F: BinaryFloatingPoint, I: BinaryInteger>(lhs: I, rhs: F) -> F {
return rhs / F(lhs)
}
let a = 10.0
let b: UInt8 = 8
print(a/b) //outputs 1.25
print(b/a) //THIS is where weird stuff shows because it outputs 1.25 as well, but should 0.8!!
Что-то мне не хватает или это может быть ошибка?