我想弄清楚如何传递给一个函数的字符串可以在由元组组成的数组中找到。以下是我的代码。我不知道如何解决这个问题。检查字符串是否是元组数组的一部分 - 斯威夫特
typealias myTuple = (input: String, magnitude: Int)
var userInput = "Happy"
var wordOneArray: [myTuple] = []
var magnitudeCount = 1
var userInputTuple: myTuple = (userInput, magnitudeCount)
magnitudeCount += magnitudeCound
func addUserInput(tempArray: myTuple) {
if wordOneArray.contains(userInput) {
userInputTuple = (userInput, magnitudeCount += magnitudeCount)
}
wordOneArray.append(userInputTuple)
print(wordOneArray)
}
addUserInput(tempArray: userInputTuple)
userInput = "Sad"
userInputTuple = (userInput, magnitudeCount)
addUserInput(tempArray: userInputTuple)
您的预期产出是?你会得到什么错误,以及在哪些方面? – Hamish
我在if语句行中发生错误“missing argument label'其中:'in call。在下一行中,'+ ='产生'()',而不是预期的上下文结果类型'Int '。我不知道为什么在第二个。第一个错误修复对我没有意义 –
请用这个信息[编辑]你的问题。第一个错误的原因是你不能直接询问一个数组的元组包含一个字符串 - 你必须使用一个自定义谓词(因此为什么编译器提示'contains(where:)')。第二个错误的原因是'+ ='返回'Void'。把它从元组赋值中移出来,只需要赋值'magnitudeCount'而已 - 例如http://stackoverflow.com/q/36185088/2976878 – Hamish