你必須很努力

Ruby 世界裡的字串與符號是什麼?

2019/07/29
字數統計: 344閱讀時間: 1 min

談 Ruby 程式語言中的符號 (Symbol) 及字串 (String) 前,先了解如何判斷符號,在字串 (String) 前加入 : (冒號) 即為符號 (如右顯示:name :名稱),特徵如下:

符號 (symbol):

  1. 就像身份證,具有唯一性 (ID) 的特徵,無法修改。
  2. 有名字的物件。
  3. 是一個值,不是變數。

字串 (String):

字串的內容可以任意修改。


上面看完有看沒懂嗎? 沒關係,翻譯蒟蒻:

把"符號"看成值(value)會更好理解

Ex: 我們會看成 age = 30 → “變數” = “值"

但不會看成 18 = 30,這是明顯的錯誤

所以符號也不會等於值 :ruby = 30,這是錯誤的


簡易測試如下:

1
2
3
4
5
6
7
8
9
10
11
12
# 字串(String)每次印出"ruby"時,ID都會不同,佔用的記憶體位址也不同。
$ p "ruby".object_id => 70368649284780
$ p "ruby".object_id => 70368649357780
$ p "ruby".object_id => 70368649378300
$ p "ruby".object_id => 70368649452840
$ p "ruby".object_id => 70368649423920
# 符號(Symbol)每次印出 :ruby 時,具有唯一性,佔用記憶體位址相同。
$ p :ruby.object_id => 680348
$ p :ruby.object_id => 680348
$ p :ruby.object_id => 680348
$ p :ruby.object_id => 680348
# 從上得知,符號(Symbol)效能比字串(String)好。

題外話:
在 Ruby 世界中,除了 block 不是物件外,大部分的東西都屬於物件,符號 、字串、變數、文字、數字、 nil …等都是物件的一種。

小菜初學 Ruby,如有錯誤歡迎提出

原文連結:https://riverye.com/2019/07/29/Ruby-世界裡的字串與符號是什麼/

發表日期:2019-07-29

更新日期:2019-10-25

CATALOG
  1. 1. 符號 (symbol):
  2. 2. 字串 (String):
    1. 2.1. 把"符號"看成值(value)會更好理解
    2. 2.2. Ex: 我們會看成 age = 30 → “變數” = “值"
    3. 2.3. 但不會看成 18 = 30,這是明顯的錯誤
    4. 2.4. 所以符號也不會等於值 :ruby = 30,這是錯誤的