我尝试实现一个函数,它将在数组中找到最小值的索引:
func minIndex<T: Equatable>(array: [T]) -> Int {
var minValue = array[0]
var minIndex = Int()
for (index, item) in enumerate(array) {
if item < minValue as T {
minValue = item
minIndex = index
}
}
return minIndex
}
但我有一个错误&#34;无法调用&#39;&lt;&#39;使用类型&#39;(T,T)&#39;&#34;的参数列表;在线:
if item < minValue as T {
答案 0 :(得分:2)
您需要将元素设为Comparable
,以便将它们与<
进行比较:
func minIndex<T: Comparable>(array: [T]) -> Int {
var minValue = array[0]
var minIndex = Int()
for (index, item) in enumerate(array) {
if item < minValue { // Your " as T" cast is not needed here
minValue = item
minIndex = index
}
}
return minIndex
}
Equatable
仅表示可以将它们与==
进行比较。