wil*_*lly 3 function ios swift
我试图使这个customRound函数,但 Xcode 抱怨无法将类型 () 的值转换为 Double
我怎么可能解决这个问题?
extension Double {
func customRound(zeros: Int) -> Double {
return round(Double(zeros)*self) / Double(zeros)
}
}
Run Code Online (Sandbox Code Playgroud)
更新:
extension Double {
func customRound(digits: Int) -> Double {
return Darwin.round(pow(10.0, Double(digits))*self) / pow(10.0, Double(digits))
}
}
Run Code Online (Sandbox Code Playgroud)
Swift 认为您正在尝试调用 的 mutatinground()函数Double而不是round()Darwin 模块中的内置函数。您可以通过明确指定来解决此问题Darwin.round():
extension Double {
func customRound(zeros: Int) -> Double {
return Darwin.round(Double(zeros) * self) / Double(zeros)
}
}
Run Code Online (Sandbox Code Playgroud)
Swift 更喜欢 Double 上定义的那个,因为它试图提供帮助。既然你没有指定self.在扩展调用方法时,它认为你的意思是self.round(...)这样尝试应用,突变round的self,当你想在达尔文的版本。
除了用于Darwin.选择所需的round功能外,您还可以指定任何包含Darwin诸如UIKit或 之类的框架Foundation。
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |