Ruby中的Symbol與字符串

剛開始學Ruby,一會兒搞不清其中的Symbol(變量須要加:)和字符串有什麼區別,爲這麼要爲語言設計這麼一個東西。讓我很迷惑。函數

 

首先,字符串對象,是不一樣的。好比"String" "String"就不一樣,實例不一樣。spa

 "String".equal?("String")
.net

這函數返回的是false。設計

可是相同名的符號,實例就相同了對象

:Str.equal?(:Str)blog

這函數返回的是true。字符串

那麼這有什麼做用呢?若是你創建一個Hash table:
table

Hash_Tab = {變量

"one" => 1,循環

"two" => 2,

.......

}

當咱們便利這張表的時候,每次循環,但又不修改key,它會新建立不少字符串對象,會增長處理器的開銷,那麼就能夠改爲Symbol。

 

 

Hash_Tab = {

 

:one => 1,

 

:two => 2,

 

.......

 

}

 

 

固然,符號和字符串均可以用來表示文本的一種方式。它們之間也能夠隨意轉換

 

references:

http://blog.csdn.net/besfanfei/article/details/7966987

http://blog.csdn.net/besfanfei/article/details/7966850

相關文章
相關標籤/搜索