Scala Reverse String

7

Ich bin ein Neuling für Scala, ich schreibe einfach eine einfache Funktion, um eine gegebene Zeichenkette umzukehren:

%Vor%

Die Ausbeute gibt ein scala.collection.immutable.IndexedSeq [Char] zurück und kann nicht in einen String konvertiert werden. (oder ist es etwas anderes?)

Wie schreibe ich diese Funktion?

    
Dzhu 08.10.2011, 23:20
quelle

5 Antworten

20

Beachten Sie, dass bereits eine Funktion definiert ist:

%Vor%

Aber wenn Sie das selbst machen wollen:

%Vor%

oder (manchmal ist es besser, until zu verwenden, aber wahrscheinlich nicht in diesem Fall)

%Vor%

Beachten Sie auch, dass wenn Sie eine umgekehrte Zählung verwenden (von einem größeren Wert zu einem niedrigeren Wert), sollten Sie einen negativen Schritt angeben oder Sie erhalten einen leeren Satz:

%Vor%     
om-nom-nom 08.10.2011, 23:30
quelle
10

Hier ist eine kurze Version

%Vor%

Bearbeiten : oder noch kürzer, wir haben das fantastisch kryptische

%Vor%

aber ich würde das nicht wirklich empfehlen ...

    
Luigi Plinge 09.10.2011 00:11
quelle
8

Sie könnten dies auch mit einem rekursiven Ansatz schreiben (werfen Sie diesen einfach nur zum Spaß auf)

%Vor%     
Thomas Lockney 08.10.2011 23:49
quelle
7

Wie von om-nom-nom angezeigt, achte auf by -1 (ansonsten iterierst du nicht wirklich und dein Ergebnis ist leer). Der andere Trick, den Sie verwenden können, ist collection.breakOut .

Es kann auch dem for Verständnis wie folgt zur Verfügung gestellt werden:

%Vor%

Der Vorteil von breakOut besteht darin, dass keine Zwischenstruktur wie in der mkString -Lösung erstellt wird.

hinweis: breakOut nutzt CanBuildFrom und Builder, die Teil der Grundlage der neu gestalteten Sammlungsbibliothek sind, die in scala 2.8.0 eingeführt wurde

    
huynhjl 08.10.2011 23:42
quelle
3

Alle obigen Antworten sind korrekt und hier ist meine Meinung:

%Vor%     
quelle

Tags und Links