11
votes

Scala Reverse String

Je suis un débutant à Scala, je vais simplement écrire une fonction simple pour inverser une chaîne donnée: xxx

Le rendement redonne un scala.collection.Immutable.indexedseq [Char ], et ne peut pas le convertir en une chaîne. (ou est-ce quelque chose d'autre?)

Comment écrire cette fonction?


0 commentaires

6 Réponses :


26
votes

Notez qu'il existe une fonction déjà définie: xxx

mais si vous voulez le faire par vous-même: xxx

ou (parfois Il est préférable d'utiliser jusqu'à , mais probablement pas dans ce cas) xxx

aussi, notez que si vous utilisez le comptage inversé (de plus grand à moins une valeur) Vous devez spécifier une étape négative ou obtenir un ensemble vide: xxx


1 commentaires

merci om-nom-nom, je veux la mettre en œuvre moi-même pour que je puisse apprendre :)




8
votes

Vous pouvez également écrire cela à l'aide d'une approche récursive (jetant celui-ci en juste pour le plaisir) xxx


1 commentaires

Cela ne sera pas optimisé




3
votes

Toutes les réponses ci-dessus sont correctes et voici ma prise: xxx


0 commentaires

0
votes
  def rev(s: String): String = {
    val str = s.toList
    def f(s: List[Char], acc: List[Char]): List[Char] = s match {
      case Nil => acc
      case x :: xs => f(xs, x :: acc)
    }
    f(str, Nil).mkString
  }

1 commentaires

Bienvenue sur Stackoverflow. En plus de la réponse que vous avez fournie, veuillez envisager de fournir une brève explication de la raison et de la manière dont cela fixe la question.