1
我想知道是否有将是swift
以下之间的性能差异:性能迅速扩展
let x = 42.42
print(floor(x))
和
let x = 42.42
extension Double {
func myFloor() -> Double {
return floor(self)
}
}
print(x.myFloor())
我想知道是否有将是swift
以下之间的性能差异:性能迅速扩展
let x = 42.42
print(floor(x))
和
let x = 42.42
extension Double {
func myFloor() -> Double {
return floor(self)
}
}
print(x.myFloor())
编译器内联在第二种情况下的代码并生成相同的机器码。 You can see for yourself, here.
那么第二个具有一个编译时错误(在声明为返回空隙的方法非void返回),并导致运行时错误(无限递归,因为'floor'指实例方法,而不是按照预期的'Darwin.floor'或'Glibc.floor') – Alexander