Подтвердить что ты не робот

Что противоположно string.next?

Есть ли в Ruby метод, который делает противоположное String#succ?

Если вы запустите succ или next, вы получите следующее:

a = "4.4.10"
a.succ
=> "4.4.11"

Я хочу наоборот:

a = "4.4.10"
a.previous
=> "4.4.09"

Возможно ли это? Мне было трудно найти это в документах Ruby. Может быть, этого не существует?

4b9b3361

Ответ 1

prev или что-то подобное не входит в стандартный API, потому что succ и гипотетический prev являются сюръективными. Несмотря на это, "реализовать класс Ruby String Prev/Pred/Prev!/Pred! - Opposite Of Next/Succ Methods - это возможная версия, которую вы могли бы использовать.

Корневая проблема заключается в том, что succ не обратимо. Это означает, что после того, как вы применили succ, тогда prev будет иметь некоторую двусмысленность.

surjective map of succ and prev