2017-05-11 3 views
-6

ab:Rubys 'next' Methode Experiment

"1a" 

[Bearbeiten Update] I aufeinanderfolgende Strings 1a 1b 1c zu durchlaufen ... zu sagen, 2a oder eine beliebige Nummer mit dem alphabetischen Buchstaben String möchte mit #nächste Methode nur. Es ist nicht Teil von Enumerable, also möchte ich als nächstes für jeden nachfolgenden String verwenden.

"1a".next # => 1b 

Wir bekommen die ersten, aber wie könnten wir die nächsten von dort bekommen. Vielleicht speichern Sie es als Variable? Ich bin mir nicht sicher, wie es geht. Wie können wir das ohne Range oder Enumerate machen?

# => 1c 
... 
# => 2a 

Denken Sie daran, eine Methode wäre nett, auch wenn Sie einen Block liefern wollen.

+2

wegzulassen Was ist Ihre Frage, btw? – mudasobwa

Antwort

3

Die Range Klasse verwendet #next für Iteration:

('1a'..'2a').each { |x| puts x } 
+0

Ich habe die Frage aktualisiert. Also String und ich möchte das nur benutzen. Aber danke. Funktioniert gut. –

3

String#upto funktionieren würde:

Die String#succ Verfahren verwendet wird, um jeden Wert zu erzeugen.

'1a'.upto('2a') { |str| puts str } 
#=> 1a 
# 1b 
# 1c 
# ... 
# 1x 
# 1y 
# 1z 
# 2a 

Oder '1a'.upto('2a', true) { ... } den letzten Wert, das heißt '2a'

+0

Ich habe die Frage aktualisiert, aber ja, das funktioniert gut. Vielen Dank! –

Verwandte Themen