我不是Ruby程序员,但在试图回答这个问题python's counterpart for Ruby String#succ?时,我试图了解Ruby的实现如何工作。然后我提到的文档succ → new_str,我意识到,所有的例子不符合说明中,除了了解字符串#succ
"<<koala>>".succ #=> "<<koalb>>"
我的Python实现返回
>>> succ("<<koala>>")
'<<koala>?'
通过采用三个演替规律
- 递增数字总是会产生另一个数字
- 递增一个字母会导致另一个字母同样的情况。
- 递增非字母数字使用底层字符集的整理顺序。
正如从文档解释,但看到上面的例子,似乎我失去了一些东西。
有人能帮我理解上面例子背后的逻辑吗?
*从最右边的字母数字(或最右边的字符(如果没有字母数字)*)开始*,因此您必须增加'a'。只有在字符串中有* no *字母数字时,才会将'>'增加到下一个字符。 –
这是一个关于Ruby或关于Python的问题吗?如果要说明Ruby的succ是如何工作的,那么如何在Python中实现它应该是一个独立的问题,在这里应该是无关紧要的。你的问题混淆了。 – sawa
根据Ruby文档:*后继者是通过从字符串中最右边的字母数字(或最右边的字符,如果没有字母数字)开始递增字符来计算的* – lurker