次のコードでは
Module.constants[0..1] # => [:object, :Module]
[0..1] とはどういう意味ですか?
0..1
範囲です。これは、Ruby パーサーがRangeオブジェクトを作成するためのシンタックス シュガーです。単純な繰り返しを含め、範囲を使用して多くのことができます。
irb(main):003:0> (1..3).class
=> Range
irb(main):004:0> (1..3).each {|x| puts x}
1
2
3
=> 1..3
Array
とりわけ、それをに変えることができます:
irb(main):005:0> (1..3).to_a
=> [1, 2, 3]
Range
引数としてa を使用するとArray#[]
、インデックスがその範囲内 (包括的) にあるすべての要素が必要になることを意味します。
irb(main):007:0> stuff = %w{a b c d e f}
=> ["a", "b", "c", "d", "e", "f"]
irb(main):008:0> range = 2..4
=> 2..4
irb(main):009:0> stuff[range]
=> ["c", "d", "e"]
Module.constants
クラスで定義された (つまり名前空間化された) すべての定数の配列を返しますModule
(はい、Module
クラスです。 を参照してくださいModule.class
)。は[0..1]
、0番目から1番目までの配列のすべての要素を教えてくれます。通常、x
が配列の場合、m 番目から n 番目までの要素x[m..n]
で構成される の部分配列を返します。x
例えば:
x = [36, 25, 16, 9, 4]
x[1..3] # => [25, 16, 9]