Ruby中的Symbol與字串

來源:互聯網
上載者:User

標籤:

剛開始學Ruby,一下子搞不清其中的Symbol(變數需要加:)和字串有什麼區別,為這麼要為語言設計這麼一個東西。讓我很迷惑。

 

首先,字串對象,是不同的。比如"String" "String"就不同,執行個體不同。

 "String".equal?("String")

這函數返回的是false。

但是相同名的符號,執行個體就相同了

:Str.equal?(:Str)

這函數返回的是true。

那麼這有什麼作用呢?如果你建立一個Hash 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

Ruby中的Symbol與字串

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.