我正在做一个关于ruby的教程,它要求3种方法来创建范围,哈希,数组。
我只能想到2:(1..3)
和Range.new(1,3)
(类似于哈希和数组)。
第三种方式是什么?
相关教程是The Odin Project
答案 0 :(得分:2)
可以使用 s..e 和 s ... e 文字或 :: new 构建范围。
使用..构建的范围包括从开始到结束。 使用...创建的那些排除了最终值。当用作迭代器时,范围将返回序列中的每个值。
(0..2) == (0..2) #=> true
(0..2) == Range.new(0,2) #=> true
(0..2) == (0...2) #=> false
答案 1 :(得分:1)
你也可以使用(1...4)
制作一个专属范围,如果变成一个数组就变成[1, 2, 3]
(1..3)
是一个包含范围,所以它包含所有数字,从1到3,但如果您使用(1...3)
,则使用3个点代替2使其成为独占,因此它包含来自的所有数字1,最多但不包括3。
对于数组和哈希,#to_a,Array#[],#to_h和Hash#[]都可以使用。
(1..3).to_a
=> [1, 2, 3]
Array[1, 2, 3]
=> [1, 2, 3]
[[1, 2], [3, 4], [5, 6]].to_h
=> {1=>2, 3=>4, 5=>6}
Hash[ [[1, 2], [3, 4], [5, 6]] ]
=> {1=>2, 3=>4, 5=>6}
答案 2 :(得分:1)