la comparaison == caractères en scala
Je suis en train de m'enseigner quelques scala. Et je suis coincé avec quelque chose qui semble arbitraire. Je veux comparer météorologiques deux caractères sont égaux les uns aux autres.
Vrai exemple
Ces return true comme prévu
"(" == "("
"(".equals("(")
Ce que je veux vérifier
"(an exampl(e))".toList(0) //res : Char = (
En quelque sorte de faux
Ces return false
"(an exampl(e))".toList(0).equals("(")
"(an exampl(e))".toList(0) == "("
"(an exampl(e))".toList.head == "("
Je pense que je suis absent quelque chose ici. Suis-je en comparant la valeur du caractère à un pointeur de liste? Si oui, comment puis-je vérifier que la valeur de l'élément que je suis de pointage est égal à "("
?
Vous n'êtes pas à l'aide d'une réelle Scala version? Cela devrait vous donner un avertissement...
OriginalL'auteur cantdutchthis | 2014-04-30
Vous devez vous connecter pour publier un commentaire.
Réponse courte est que Vous devriez comparer avec d'') " non ")". Le ")" est de type
String
pasChar
.À l'aide de REPL, vous pouvez facilement tester (notez le type).
La méthode equals est défini de manière plus ou moins semblable à ce
equals(obj: Any): Boolean
, de sorte que le code compile n'a pas d'importance ce que vous transmettez en tant qu'argument. Toutefois, le contrôle estfalse
, que le type n'est pas le même.Par la façon dont je pense que plus agréable façon est d'écrire vos tests de ce genre (sans
.toList
comme.head
est défini dansStringOps
):OriginalL'auteur lpiepiora