Comment choisir un élément au hasard dans un tableau en Scala?
Par exemple, il y a un Scala tableau val A = Array("please", "help", "me")
. Comment choisir un élément au hasard dans ce tableau?
Vous devez vous connecter pour publier un commentaire.
scala.util.Random
A.length
est égal à zéro. Ne jamais oublier les cas de bordheadOption
, depuis leSeq
(Array
ici) peut être vide.A.size
est égal à zéro. Ne jamais oublier les cas de bordA.lift(Random.nextInt(A.size))
qui vous donneraOption[Int]
A.size
est 0Nous pouvons également ajouter un peu de sécurité avec le
Option
monade (à l'aide de lalift
fonction, et une condition)En fait, si vous utilisez cette fonction sur les Tableaux (qui peut être vide), votre résultat sera toujours une Option.
Référentiels de Transparence FTW \o/
Une meilleure réponse qui n'implique pas de remaniement du tableau à tous serait celui-ci:
Cela fonctionne aussi de façon générique
Si vous voulez un plus idiomatiques solution, pensez à utiliser le typeclass modèle (implicite des classes dans la scala).
Maintenant, si l'implicite de la classe est dans la portée, vous pouvez:
Si vous êtes sûr que l'option contient une certaine valeur, vous pouvez utiliser le
get
méthode.Néanmoins, la correspondance de motif ou
getOrElse
sont recommandées:Note que le
randomChoice
méthode suppose la substitution d'éléments.