溫馨提示×

Ruby符號與字面量有何作用

小樊
81
2024-10-24 18:00:37
欄目: 編程語言

Ruby中的符號(Symbol)和字面量(Literal)都是用于表示固定值的特殊類型的常量。它們的作用和區(qū)別如下:

符號(Symbol)

  1. 唯一性:每個(gè)符號都是唯一的,即使兩個(gè)符號看起來相同,它們也是不同的對象。
  2. 不可變性:一旦創(chuàng)建了一個(gè)符號,就不能修改它的值。
  3. 可用作哈希鍵:由于符號的唯一性和不可變性,它們可以用作哈希表的鍵。
  4. 節(jié)省內(nèi)存:符號在內(nèi)存中只存儲一次,所有引用相同符號的變量都指向同一個(gè)對象。

字面量(Literal)

  1. 表示值:字面量用于表示程序中的固定值,如整數(shù)、浮點(diǎn)數(shù)、字符串、布爾值等。
  2. 可變性:字面量的值在創(chuàng)建后不能被修改。
  3. 可用作變量賦值:字面量可以用作變量的初始值。

符號與字面量的區(qū)別

  1. 語法:符號使用冒號(:)前綴,如:symbol_name;而字面量沒有特殊的前綴。
  2. 唯一性:符號是唯一的對象,而字面量只是值的表示,可以有多個(gè)相同的字面量對象。
  3. 可變性:符號是不可變的,而字面量的值在創(chuàng)建后也不能被修改(對于不可變類型如整數(shù)、浮點(diǎn)數(shù)等)。
  4. 用途:符號通常用作哈希表的鍵,而字面量用于表示程序中的固定值。

示例:

# 定義符號
sym = :my_symbol
puts sym.inspect  # 輸出: :my_symbol

# 定義字面量
lit = 42
puts lit.inspect  # 輸出: 42

# 將符號作為哈希表的鍵
hash = { sym => "Hello, Symbol!" }
puts hash[sym]  # 輸出: Hello, Symbol!

# 字面量作為變量的初始值
var = lit
puts var  # 輸出: 42

0