【问题标题】:Difference between .. and ... in Ruby [duplicate]Ruby中..和...之间的区别[重复]
【发布时间】:2016-05-01 06:40:10
【问题描述】:

ruby for 循环中 .. 和 ... 有什么区别。

for num in 1..5
    puts num
end

for num in 1...5
    puts num
end

这两个循环有何不同。

【问题讨论】:

    标签: ruby


    【解决方案1】:

    在 ruby​​ 中,1...5 为您提供了一个不包括 5 的范围 而1..5 为您提供了一个包含5 的范围

    例如:

    >> (1..5).to_a
    [
        [0] 1,
        [1] 2,
        [2] 3,
        [3] 4,
        [4] 5
    ]
    >> (1...5).to_a
    [
        [0] 1,
        [1] 2,
        [2] 3,
        [3] 4
    ]
    

    【讨论】:

      【解决方案2】:

      三个点表示结束在终止符之前, 两个点表示它包含终止符。

      SRC:http://strugglingwithruby.blogspot.pt/2008/11/loops.html

      1...5 -> 1 到 4

      1..5 -> 1 到 5

      【讨论】:

      • 另外,Ruby的flip-flop operator用两个点和三个点还是有很大区别的。 :-)
      【解决方案3】:

      区别在于包含范围和不包含范围。

      即:

      (1..5).to_a
      # => [1, 2, 3, 4, 5]
      (1...5).to_a
      # => [1, 2, 3, 4]
      

      因此,您的循环将具有不同的循环数。

      【讨论】:

        猜你喜欢
        • 2014-10-31
        • 1970-01-01
        • 2015-10-09
        • 1970-01-01
        • 2014-08-16
        • 2011-04-08
        • 2012-11-24
        • 2013-06-05
        • 2021-09-29
        相关资源
        最近更新 更多