Изредка бывает необходимо получить «следующую» строку. Так, следующей для строки "ааа" будет строка "aab" (затем "aac", "aad" и так далее).
В Ruby для этой цели есть метод succ:
droid = "R2D2"
inproved = droid.succ # "R2D3"
pill = "Vitamin B"
?ill2 = pill.succ # "Vitamin C"
He рекомендуется применять этот метод, если точно не известно, что начальное значение предсказуемо и разумно. Если начать с какой-нибудь экзотической
строки, то рано или поздно вы получите странный результат.
Существует также метод upto, который в цикле вызывает succ, пока не будет
достигнуто конечное значение:
"Files, A".upto "Files, X" do |letter|
puts "Opening: #{letter}"
end
* Выводится 24 строки.
Еще раз подчеркнем, что эта возможность используется редко, да и то на ваш страх и риск. Кстати, метода, возвращающего «предшествующую» строку, не существует.
