24

Ruby中是否有相反的方法String#succ

如果你运行succ或者next你得到这个:

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

我想要相反的:

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

这可能吗?我很难在 Ruby 文档中找到它。也许它不存在?

4

1 回答 1

39

prev或类似的东西不在标准 API 中,因为succ假设prev是满射的。尽管如此,“ Implement Ruby String Class Prev / Pred / Prev! / Pred! - Opposite Of Next / Succ 方法”是您可以使用的可能版本。

根本问题是succ不可逆的。这意味着,一旦您申请了succ,那么prev最终会出现一些歧义。

succ和prev的满射图

于 2013-05-23T14:28:44.460 回答