在 Ruby 語言中,符號(Symbol)和字面量(Literal)都是用來表示固定值的特殊類型的常量。它們之間有一些相似之處,但也有一些關鍵的區別。
字面量是直接表示其值的常量。在 Ruby 中,有幾種不同的字面量類型,包括:
1
, 2
, 100
等。1.0
, 2.5
, 3.14159
等。'hello'
, "world"
等。注意,單引號字符串中的轉義字符會被解釋,而雙引號字符串則可以包含轉義序列。true
或 false
。nil
表示。{a: 1, b: 2}
。[1, 2, 3]
。字面量通常用于定義常量或變量,以便在代碼中多次引用相同的值。
符號是一種不可變的、唯一的常量。它們通常用于表示方法名、變量名或其他標識符。符號的主要特點是它們是不可變的,這意味著一旦創建了一個符號,就不能更改它的值。
在 Ruby 中,可以使用冒號后跟一個單詞來創建符號,如 :symbol_name
。符號通常比字符串更緊湊,因為它們不需要引號,并且是不可變的。
符號常量在 Ruby 中經常用于避免全局命名空間的污染,因為符號是唯一的,不會與其他任何東西沖突。此外,符號還可以用作哈希的鍵,因為它們是不可變的。
理解符號和字面量在 Ruby 中的區別和用途,可以幫助你編寫更清晰、更高效的代碼。