我正在制作自定义操作符(≠,≈,∑,√),平方根实现很有趣。我写
prefix func √ (item:Double) -> Double {
return sqrt(item)
}当您输入sqrt(时,它有5个自动完成,其中2个返回Double。第二个错误给出了一个错误,如果您自动修复它,就会删除x:。他们之间有什么区别,为什么第二个在自动完成,如果它不工作?
发布于 2014-08-25 23:25:48
在自动完成弹出窗口中看到的三件事是sqrt函数重载--它们使用相同的函数名,但使用不同的参数类型。这样,您就可以记住sqrt的意思是“平方根”,并使用该名称,而不管您使用的是Float、Double还是CGFloat数字。(这也意味着,如果您想要创建一个√操作符作为“排序”的别名,则需要创建它的三个版本。)
另外两个在自动完成弹出窗口中以sqrt(Double)和sqrtf(Float)的形式出现,是导入的C(可能还有其他三个sqrt函数的底层实现)。这些可能不应该出现,所以我推荐将错误归档。
https://stackoverflow.com/questions/25491007
复制相似问题