在 Ruby 中,符号(Symbol)和字面量(Literal)是两种不同的概念,但它们之间可以进行转换。
- 将字面量转换为符号:
可以使用 to_sym
方法将字符串、数字或其他类型的字面量转换为符号。例如:
s = "hello".to_sym puts s # 输出: :hello
注意,如果字符串中包含非法字符,to_sym
方法会引发错误。
- 将符号转换为字面量:
可以使用 to_s
方法将符号转换为字符串字面量。例如:
s = :hello str = s.to_s puts str # 输出: hello
此外,符号也可以转换为其他类型的字面量,例如数字。可以使用相应的转换方法进行转换,例如 to_i
、to_f
等。例如:
s = :123 num = s.to_i puts num # 输出: 123
需要注意的是,符号到数字的转换可能会导致数据丢失,因为符号表示的是唯一的标识符,而不是具体的数值。因此,在进行转换时需要谨慎处理。