J'essaie de comprendre comment vérifier si une chaîne transmise à une fonction peut être trouvée dans un tableau composé de tuples en tant qu'éléments. Voici mon code. Je ne suis pas sûr de la meilleure façon de résoudre ce problème.Vérifiez si la chaîne fait partie du tableau de tuples - Swift
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)
Quelle est votre sortie attendue? Quelles erreurs obtenez-vous, et sur quelles lignes? – Hamish
J'obtiens une erreur sur la ligne d'instruction if "missing argument label" où: 'call.J'ai aussi une erreur dans la ligne suivante qui dit' + = 'produit'() ', pas le type de résultat contextuel attendu' Int Je ne sais pas pourquoi sur le second.La première correction d'erreur n'a pas de sens pour moi –
S'il vous plaît [modifier] votre question avec cette information.La raison de la première erreur est que vous ne pouvez pas demander directement si un tableau de tuples contient une chaîne - vous devrez utiliser un prédicat personnalisé (d'où la raison pour laquelle le compilateur suggère 'contains (where:)'). La raison de la deuxième erreur est que '+ =' renvoie 'Void'. pour le déplacer hors de l'assignation de tuple, et juste assigner 'magnitudeCount' à la place - voir par exemple http://stackoverflow.com/q/36185088/2976878 – Hamish