Ruby x [0 ... i]做什么

时间:2018-03-11 14:50:33

标签: ruby

我不明白这段代码:

a = [ "a!", "b!", "c!", "d!" ]
a.collect!.with_index {|x, i| x[0...i]}
a #=> ["", "b", "c!", "d!"]

collect行,x[0...i]做了什么?我看到输出,但不明白它是如何做/得到它。

1 个答案:

答案 0 :(得分:5)

根据docs

  

使用..构建的范围包括从开始到结束。使用...创建的那些排除了最终值..

所以a..b就像a <= x <= b,而a...b就像a <= x < b。即:

>> "a!"[0...0]
=> ""
>> "a!"[0...1]
=> "a"
>> "a!"[0...2]
=> "a!"

a.collect!.with_index中,xi的值为:

  • &#34;!A&#34; - 0 =&gt; "a!"[0...0] =&gt; ""
  • &#34;!B&#34; - 1 =&gt; "b!"[0...1] =&gt; "b"
  • &#34;!C&#34; - 2 =&gt; "c!"[0...2] =&gt; "c!"
  • 等......