104 votes

Scala vérifie si un élément est présent dans une liste

Je dois vérifier si une chaîne de caractères est présente dans une liste, et appeler une fonction qui accepte un booléen en conséquence.

Est-il possible d'y parvenir avec un one liner ?

Le code ci-dessous est le meilleur que j'ai pu obtenir :

val strings = List("a", "b", "c")
val myString = "a"

strings.find(x=>x == myString) match {
  case Some(_) => myFunction(true)
  case None => myFunction(false)
}

Je suis sûr qu'il est possible de faire cela en codant moins, mais je ne sais pas comment !

-1voto

Stas S Points 80

Vous pouvez également mettre en œuvre une contains méthode avec foldLeft c'est assez impressionnant. J'adore les algorithmes foldLeft.

Par exemple :

object ContainsWithFoldLeft extends App {

  val list = (0 to 10).toList
  println(contains(list, 10)) //true
  println(contains(list, 11)) //false

  def contains[A](list: List[A], item: A): Boolean = {
    list.foldLeft(false)((r, c) => c.equals(item) || r)
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X