嗯,这可能不是一个好主意,但是如果你想要将方法链接一般n次,你可以这样做:
2.times.inject('a') { |s| s.next }
# => 'c'
20.times.inject('a') { |s| s.next }
# => 'u'
Run Code Online (Sandbox Code Playgroud)
这从值开始'a',运行一个调用的块next,然后将每个连续的结果反馈到块中.
对于它的价值,猴子修补String对于琐碎的脚本来说可能没什么问题,但我个人首先尝试寻找其他解决方案,比如只为你的类/模块添加一个实用程序函数:
def repeat_next(str, n = 1)
n.times.inject(str) { |s| s.next }
end
Run Code Online (Sandbox Code Playgroud)
您(a.ord + 2).chr可能存在特定问题的快捷方式,尽管它不是同一个问题.
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |