0

これらの記号はどこで定義され、何に使用されますか?

:w2_end
:w2_beg
:w1_beg
:w1_end

IRB行を使用してそれらを見つけましたSymbol.all_symbols

私のRubyバージョンとIRBバージョンは次のとおりです。

C:\>ruby -v
ruby 1.9.3p374 (2013-01-15) [i386-mingw32]

C:\>irb --version
irb 0.9.6(09/06/30)

Ruby私は別のIRBバージョンで同じことを以下のように試しました:

C:\>irb --version
irb 0.9.6(09/06/30)

C:\>ruby -v
ruby 1.9.3p392 (2013-02-22) [i386-mingw32]

Arr = Symbol.all_symbols 
Arr.include?(:w2_end) #=> true
Arr.include?(:w2_beg) #=> true
Arr.include?(:w1_beg) #=> true
Arr.include?(:w1_end) #=> true
4

1 に答える 1

1

これらのシンボルはRubyソースには表示されず、検索時に定義されていません。

$ rvm 1.9.3-p374 do irb
1.9.3p374 :003 > Symbol.all_symbols.map(&:to_s).grep(/^w\d/)
 => [] 

拡張機能をロードするようにirbを構成しましたか?.irbrcがある場合は、それを調べてください。

これらのシンボルは、他の場所の中でも、readlineライブラリで一般的に見られます。irbはreadlineを使用します。おそらく、Windowsのreadlineには特別な何かがあり(たとえば、Rubyでコーディングされている)、これらのシンボルが定義されます。

于 2013-03-08T17:30:04.143 に答える