我想弄清楚如何傳遞給一個函數的字符串可以在由元組組成的數組中找到。以下是我的代碼。我不知道如何解決這個問題。檢查字符串是否是元組數組的一部分 - 斯威夫特
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