2013-03-08 16 views
1

這些符號在哪裏定義,它們用於什麼?如何使用下面提到的符號描述?

: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 
+0

你能澄清你的問題嗎?你想知道什麼?一個符號只是一個符號。它沒有任何意義,它什麼都不做。你的問題就像問在Ruby中使用數字'3'是什麼一樣。 – 2013-03-08 17:12:58

+0

所以你做了Symbol.all_symbols,找到了這四個符號,現在你想知道哪些代碼使用它們以及它使用了什麼? – 2013-03-08 17:16:04

+0

@ muistooshort yes.you是對的。我可以幫助他們使用嗎? – 2013-03-08 18:02:19

回答

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編碼),這會導致這些符號被定義。