我正在寻找一种将接收器转换为字符串的方法。在下文中,a.to_s
不会改变a
的指示对象。 a
会返回3
。
a = 3
a.to_s #=> "3"
a #=> 3
我想要像
这样的东西a = 3
a.some_method
a #=> "3"
a
应该返回"3"
。
答案 0 :(得分:3)
只需指定字符串。
a = 3
a = a.to_s
或者更简洁......
a = 3.to_s
有些对象是可变的,有些是不可变的,但是没有机制让3.some_method
更改对象的data_type(class)。
上述解决方案只是将所需data_type的新对象分配给变量。
变量非常愚蠢"推荐人并没有自己的方法,a.some_method
在引用的对象(#some_method
)上调用3.some_method
。
答案 1 :(得分:2)
这是不可能的。无论方法返回什么对象,它都不会更改引用该接收器的变量的引用。