func min(_ numbers:Double...)->Double{
var result:Double = 0.0
for num in numbers{
if num < numbers {
result = num
}
}
return result
}
Here in if num < numbers
showing me error:
Binary Operator "<" can not applied to operand of double and Double
答案 0 :(得分:1)
你提到的错误可能是错误的,应该是:
二元运算符“&lt;”不能应用于Double的操作数和[Double]
表示您正在尝试比较double和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
应返回可选值,因为 - 如代码段中所述 - 具有variadic参数的函数可以在不使用标签的情况下获取0个参数。
同时强>
我建议使用min()数组方法,如下所示:
func min(_ numbers: Double...) -> Double? {
return numbers.min()
}
输出应该相同......
答案 1 :(得分:0)
你可以用这个:
let numbers = [1.1, 6.2, 3.1, 9.3, 4.2, 6.1]
斯威夫特3:
numbers.min()
numbers.max()
斯威夫特2:
numbers.minElement()
numbers.maxElement()