Ruby 有没有红宝石片';那更像是一块排骨?

Ruby 有没有红宝石片';那更像是一块排骨?,ruby,Ruby,chop切掉最后一个字符并返回剩余的字符串: irb(main):011:0> "hello world".chop => "hello worl" slice可用于切断第一个字符 irb(main):013:0> str = "hello world" => "hello world" irb(main):014:0> str.slice!(0) => "h" irb(main):015:0> str => "ello world" 是否有一

chop
切掉最后一个字符并返回剩余的字符串:

irb(main):011:0> "hello world".chop
=> "hello worl"
slice
可用于切断第一个字符

irb(main):013:0> str = "hello world"
=> "hello world"
irb(main):014:0> str.slice!(0)
=> "h"
irb(main):015:0> str
=> "ello world"
是否有一个Ruby方法可以截断第一个字符,然后返回字符串的其余部分?所以看起来像

irb(main):011:0> "hello world".some_method
=> "ello world"

这里有两种方法:

> str = "hello world"
=> "hello world"
> str[1..-1]
=> "ello world"
> str = "hello world"
=> "hello world"
> str.slice(1..-1)
=> "ello world"
这里有一个有趣的方法:

> str = "hello world"
=> "hello world"
> str.reverse.chop.reverse
=> "ello world"
另一种有趣(但破坏性)的方式:


我想象一个真正的忍者翻转琴弦,给它一个快速的切碎,然后再翻转一次。虽然它会按照OP的要求去做,但它也会浪费CPU。嗨,卡里,我出版了两本《宝石》和一本书。如果它们听起来很有趣,请看一看。@sawa,谢谢,我把它们放在书签里了,但是在我理解纯Ruby之外的东西之前,我不会去看它们。(我甚至不知道HTML。)从Ruby 2.5开始,您可以使用
delete_prefix
(或等效的bang)。
"hello world".tap { |s| s.slice!(0) }
  #=> "ello world"