0

次のコードでは

Module.constants[0..1]  # => [:object, :Module]

[0..1] とはどういう意味ですか?

4

2 に答える 2

2

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"]
于 2013-03-24T02:33:22.097 に答える
1

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]
于 2013-03-24T02:26:46.290 に答える