就那么简单
c = :cat
c.to_s
puts c.class
给我符号,和
c = "cat"
c.to_sym
puts c.class
给出字符串。我使用的 Ruby 是 1.9.3,文档说这应该将符号转换为字符串,并将字符串转换为符号。什么可能是错的?
to_s
并且to_sym
不要改变原始变量,而是返回一个值。您需要.class
使用.to_s
.
c = :cat
c.to_s.class
# "String"
c = "cat"
c.to_sym.class
# "Symbol"
如果要转换新变量,则必须对其进行赋值。
c = "cat"
d = c.to_sym
puts d.class
# d is a symbol
# "Symbol"
to_s
并to_sym
返回新值,它们不会转换变量。
尝试:
c = :cat
c = c.to_s
puts c.class # "String"
c = "cat"
c = c.to_sym
puts c.class # "Symbol"