在Ruby中,符號(Symbol)和字面量(Literal)都是用來表示固定值的特殊類型的常量。它們的使用場景和特點(diǎn)有所不同,下面分別介紹它們的運(yùn)用。
sym = :my_symbol
puts sym.object_id # 輸出一個(gè)唯一的整數(shù),表示這個(gè)符號
def my_method(arg)
arg.upcase
end
result = my_method(sym) # result 的值將是 ":MY_SYMBOL"
MY_CONSTANT = :value
class MyClass
attr_accessor :my_attribute
def initialize(value)
@my_attribute = value
end
end
obj = MyClass.new(:another_value)
puts obj.my_attribute # 輸出 ":ANOTHER_VALUE"
num = 42
float_num = 3.14
str = "Hello, World!"
bool = true
[]
創(chuàng)建數(shù)組字面量。array = [1, 2, 3, 4, 5]
{}
創(chuàng)建哈希字面量。鍵和值之間用冒號 :
分隔,不同的鍵值對之間用逗號 ,
分隔。hash = {a: 1, b: 2, c: 3}
/
包圍的模式字符串創(chuàng)建正則表達(dá)式字面量。regex = /hello/i
在這個(gè)例子中,i
修飾符表示不區(qū)分大小寫。
符號和字面量可以結(jié)合使用,以創(chuàng)建具有特定含義和行為的常量或?qū)ο?。例如,你可以使用符號作為哈希表的鍵,而使用字面量作為值。
colors = {
:red => "#FF0000",
:green => "#00FF00",
:blue => "#0000FF"
}
puts colors[:red] # 輸出 "#FF0000"
在這個(gè)例子中,:red
是一個(gè)符號,用作哈希表的鍵;"#FF0000"
是一個(gè)字符串字面量,用作哈希表的值。