for i in stride(from: -13, to: 13, by: 2) {
print(13-(pow(pow(Double(i), Double(2)), Double(0.5)))) / 2
}
我在Swift中有这段代码,该代码返回“二进制运算符'/'无法应用于类型为'()'和'Int'的操作数”
答案 0 :(得分:1)
您正在尝试将print
函数(()
)的结果除以2。您可能打算将给打印表达式的数字除以。
这是干净代码的重要性:)
for i in stride(from: -13, to: 13, by: 2) {
print(13 - ( pow(pow(Double(i), 2), 0.5) / 2 ))
}
注意:
Double
符合ExpressibleByDoubleLiteral
协议(显然,这就是您可以执行let d: Double = 0.5
的原因),但是该协议本身继承自ExpressbileByIntegerLiteral
。这意味着您可以从双精度文字(例如1.0
)初始化的任何内容,都可以从整数常量(例如2
)初始化。因此,请勿编写类似Double(2)
的文字。保持简单,只需编写2
。 ()
有两个含义:
这是空元组的类型。它被别名化为Void
。
不显式返回任何其他值的函数将返回此类型的值。 print
是一个函数的示例,该函数不返回任何内容,因此不返回任何内容,即()
。
// These are all equivalent:
func f() {...
func f() -> () {...
func f() -> Void {...
这是空元组的唯一可能值。
不显式返回任何其他值的函数,将返回此值。
func f() {
return () // equivalent to `return` on it own
}