是否存在以这样的方式编写这样的代码以使其更清晰的方式?
a = (a.split(" ")[1..-1]).join(" ")
Run Code Online (Sandbox Code Playgroud)
这删除了句子的第一个单词,但代码看起来根本没有表现力.
码
a = a.split[1..-1] * " "
Run Code Online (Sandbox Code Playgroud)
说明
String#split的默认参数是""
Array * String 是别名 Array.join(String)
第二个想法,我不确定对于不熟悉红宝石的人来说它本身是否更透明.但是任何使用过Ruby字符串的人都会理解正在发生的事情.而且它比原始版本更干净.
根据我的正确意见的答案(你们都应该投票而不是我的投票),如果你运行的是Ruby 1.9.1(无论如何应该是这样)或Ruby 1.8.7,你可以这样做:
a = a.split.drop(1) * " "
Run Code Online (Sandbox Code Playgroud)
irb(main):024:0> "this is a test".split.drop(1) * " "
=> "is a test"
Run Code Online (Sandbox Code Playgroud)
编辑添加:
说明:
默认情况下,
#split在空格上分隔.
#drop(1)摆脱第一个条目.
* " "做同样的事#join(" ").
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |