在 Ruby 語(yǔ)言中,符號(hào)(Symbol)和字面量(Literal)都是用來(lái)表示固定值的特殊類型的常量。它們之間有一些相似之處,但也有一些關(guān)鍵的區(qū)別。
字面量是直接表示其值的常量。在 Ruby 中,有幾種不同的字面量類型,包括:
1
, 2
, 100
等。1.0
, 2.5
, 3.14159
等。'hello'
, "world"
等。注意,單引號(hào)字符串中的轉(zhuǎn)義字符會(huì)被解釋,而雙引號(hào)字符串則可以包含轉(zhuǎn)義序列。true
或 false
。nil
表示。{a: 1, b: 2}
。[1, 2, 3]
。字面量通常用于定義常量或變量,以便在代碼中多次引用相同的值。
符號(hào)是一種不可變的、唯一的常量。它們通常用于表示方法名、變量名或其他標(biāo)識(shí)符。符號(hào)的主要特點(diǎn)是它們是不可變的,這意味著一旦創(chuàng)建了一個(gè)符號(hào),就不能更改它的值。
在 Ruby 中,可以使用冒號(hào)后跟一個(gè)單詞來(lái)創(chuàng)建符號(hào),如 :symbol_name
。符號(hào)通常比字符串更緊湊,因?yàn)樗鼈儾恍枰?hào),并且是不可變的。
符號(hào)常量在 Ruby 中經(jīng)常用于避免全局命名空間的污染,因?yàn)榉?hào)是唯一的,不會(huì)與其他任何東西沖突。此外,符號(hào)還可以用作哈希的鍵,因?yàn)樗鼈兪遣豢勺兊摹?/p>
理解符號(hào)和字面量在 Ruby 中的區(qū)別和用途,可以幫助你編寫更清晰、更高效的代碼。