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