Swift 二元运算符“<”

Swift Binary Operator "<"

func min(_ numbers:Double...)->Double{

        var result:Double = 0.0
        for num in numbers{

            if num < numbers {

                result = num
            }
        }

    return result
}

这里 if num < numbers 显示错误:

Binary Operator "<" can not applied to operand of double and Double

你可以使用这个:

let numbers = [1.1, 6.2, 3.1, 9.3, 4.2, 6.1]

Swift 3:

numbers.min()
numbers.max()

Swift 2:

numbers.minElement()
numbers.maxElement()

可能你说的错误比较错误,应该是:

Binary Operator "<" can not applied to operand of Double and [Double]

表示您正在尝试比较双精度和双精度数组 (numbers)。

您要实现的应该是:

func min(_ numbers: Double...) -> Double? {
    guard var result = numbers.first else {
        return nil
    }

    for num in numbers {
        if result > num {
            result = num
        }
    }

    return result
}

用法:

if let minResult = min(2.1, 61.2, 33.6, 9.3, 4.2, 6.1, 6.1, 6.1, 3.4) {
    print(minResult) // 2.1
}

let nilResult = min() // nil

请注意 min 应该 returns 一个 可选 值,因为 - 如代码片段中所述 - 具有可变参数的函数能够采用0 个参数,不使用标签。

还有:

我会推荐使用min()数组方式,如下:

func min(_ numbers: Double...) -> Double? {
    return numbers.min()
}

输出应该是一样的...