我是Swift的新手,刚刚参与了一些教程。我决定尝试使用圆函数修改其中一个的结果,但发现你不能指定2个小数位,所以我需要使用圆形公式(100 * x)/ 100.我决定尝试使用以下代码重载圆函数:
func round(x : Double, precision : Int) -> Double {
return round(pow(10.0,Double(precision)) * x) / pow(10.0,Double(precision))
}
当我在操场上运行此代码时,它运行得很好。但是,当我将此代码放入我的xcode项目时,返回行会出现错误"无法找到' init'接受提供的参数"。我已经导入了UIKit,所以我不知道为什么它在操场上有效但在我的程序中没有。有什么想法吗?
编辑:好的,看了之后,我确实注意到我在操场上的代码和项目中的代码之间的唯一区别是在操场上,函数是在类之外编写的,而在把它放在一个班级里面。在类之外移动项目中的代码可以解决问题。所以现在我的问题是,为什么它在课堂上是否重要?有没有办法让它在课堂内工作?
答案 0 :(得分:2)
您将方法放入类定义中,以便它是
编译为该类的方法。在那种情况下,内部呼叫
to Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
viewscores()
File "C:\Users\Danny\Desktop\list.py", line 40, in viewscores
sorted_by_second = sorted(data, key=lambda tup: tup[1])
File "C:\Users\Danny\Desktop\list.py", line 40, in <lambda>
sorted_by_second = sorted(data, key=lambda tup: tup[1])
IndexError: tuple index out of range
也被解释为同一类的方法调用。
您可以通过指定模块名称来解决这个问题(&#34; Darwin&#34;在这种情况下) 明确地:
round()
但更简单的解决方案是将其定义为外部的自由函数 任何阶级。