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()
}
输出应该是一样的...
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()
}
输出应该是一样的...