【发布时间】:2017-06-29 17:49:49
【问题描述】:
我有一个名为array 的对象数组,它的类型是votes。在数组的对象中有一个名为nameSubject 的字段,它是一个字符串。
如何传递我的数组和我想与主题名称进行比较的字符串?这是我的功能:
static func binarySearch(inputArr: [votes], searchItem: String)->Int?{
var lowerIndex = 0;
var upperIndex = inputArr.count - 1
while (true) {
var currentIndex = (lowerIndex + upperIndex)/2
if(inputArr[currentIndex] == searchItem) {
return currentIndex
} else if (lowerIndex > upperIndex) {
return nil
} else {
if (inputArr[currentIndex] > searchItem) {
upperIndex = currentIndex - 1
} else {
lowerIndex = currentIndex + 1
}
}
}
}
错误出现在第一个和第二个if 中,并表示:二进制运算符'=='不能应用于'votes'和'String'类型的操作数”
【问题讨论】:
-
你想在第二个 else 语句中做什么?
-
如果您经常这样做,最好将字典映射
nameSubject到votes对象 -
顺便说一句,Swift 的约定是使用 UpperCamelCase,单数命名类型,例如
Vote