如何使用下面提到的符号说明?

时间:2013-03-08 16:57:02

标签: ruby ruby-1.9 irb

这些符号在哪里定义,它们用于什么?

:w2_end
:w2_beg
:w1_beg
:w1_end

我使用行IRBSymbol.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)

我在另一个RubyIRB版本中尝试了相同的操作,如下所示:

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

1 个答案:

答案 0 :(得分:1)

这些符号不会出现在Ruby源代码中,也不会在我查找它们时定义:

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

您是否已将irb配置为加载任何扩展程序?如果你有.irbrc,请查看.irbrc。

这些符号通常在readline库中找到。 irb使用readline。也许在Windows上的readline(例如用Ruby编码)有一些特殊的东西可以定义这些符号。