在 Ruby 中,符號(hào)(Symbol)和字面量(Literal)是兩種不同的概念,但它們之間可以進(jìn)行轉(zhuǎn)換。
可以使用 to_sym
方法將字符串、數(shù)字或其他類型的字面量轉(zhuǎn)換為符號(hào)。例如:
s = "hello".to_sym
puts s # 輸出: :hello
注意,如果字符串中包含非法字符,to_sym
方法會(huì)引發(fā)錯(cuò)誤。
可以使用 to_s
方法將符號(hào)轉(zhuǎn)換為字符串字面量。例如:
s = :hello
str = s.to_s
puts str # 輸出: hello
此外,符號(hào)也可以轉(zhuǎn)換為其他類型的字面量,例如數(shù)字。可以使用相應(yīng)的轉(zhuǎn)換方法進(jìn)行轉(zhuǎn)換,例如 to_i
、to_f
等。例如:
s = :123
num = s.to_i
puts num # 輸出: 123
需要注意的是,符號(hào)到數(shù)字的轉(zhuǎn)換可能會(huì)導(dǎo)致數(shù)據(jù)丟失,因?yàn)榉?hào)表示的是唯一的標(biāo)識(shí)符,而不是具體的數(shù)值。因此,在進(jìn)行轉(zhuǎn)換時(shí)需要謹(jǐn)慎處理。