在Swift中类型'()'指的是什么

时间:2018-10-23 23:36:38

标签: swift

for i in stride(from: -13, to: 13, by: 2) {
    print(13-(pow(pow(Double(i), Double(2)), Double(0.5)))) / 2
}

我在Swift中有这段代码,该代码返回“二进制运算符'/'无法应用于类型为'()'和'Int'的操作数”

1 个答案:

答案 0 :(得分:1)

您正在尝试将print函数(())的结果除以2。您可能打算将给打印表达式的数字除以。

这是干净代码的重要性:)

for i in stride(from: -13, to: 13, by: 2) {
    print(13 - ( pow(pow(Double(i), 2), 0.5) / 2 ))
}

注意:

  1. Double符合ExpressibleByDoubleLiteral协议(显然,这就是您可以执行let d: Double = 0.5的原因),但是该协议本身继承自ExpressbileByIntegerLiteral。这意味着您可以从双精度文字(例如1.0)初始化的任何内容,都可以从整数常量(例如2)初始化。因此,请勿编写类似Double(2)的文字。保持简单,只需编写2
  2. ()有两个含义:

    1. 这是空元组的类型。它被别名化为Void

      • 不显式返回任何其他值的函数将返回此类型的值。 print是一个函数的示例,该函数不返回任何内容,因此不返回任何内容,即()

        // These are all equivalent:
        func f() {...
        func f() -> () {...
        func f() -> Void {...
        
    2. 这是空元组的唯一可能值。

      • 不显式返回任何其他值的函数,将返回此值。

        func f() {
            return () // equivalent to `return` on it own
        }