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

标签 ruby

我不明白这段代码:

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

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

最佳答案

根据docs :

Ranges constructed using .. run from the beginning to the end inclusively. Those created using ... exclude the end value..

所以 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 , x 的值和 i将是:

  • “一个!” - 0 => "a!"[0...0] => ""
  • “啊!” - 1 => "b!"[0...1] => "b"
  • “c!” - 2 => "c!"[0...2] => "c!"
  • 等等...

关于 ruby x[0...i] 做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49221311/

相关文章:

javascript - 哪个是检测客户端用户代理的更好方法?

ruby-on-rails - 今天 ruby 约会? - 意外行为

ruby-on-rails - 如何从数组中删除方括号和逗号

Ruby IO.popen 带有 "-",幕后发生了什么?

ruby-on-rails - 如何指定具有多态关联的 "commentable_type"字段?

ruby - 为什么部分符号 (§) 无法正确读取,具体取决于它的创建位置?

ruby-on-rails - 我可以在 Rails 模型中定义方法吗?

ruby - 替换特定单词模式后未出现的所有冒号字符

ruby - 如何使用 axlsx 在循环中以编程方式引用单元格

ruby-on-rails - Mongoid,查找名称包含字符串的模型