我正在寻找一种将接收器转换为字符串的方法。在下文中,a.to_s
不会更改a
的参考物。 a
返回3
。转换数据类型的方法
a = 3
a.to_s #=> "3"
a #=> 3
我想是这样
a = 3
a.some_method
a #=> "3"
a
应该返回"3"
。
我正在寻找一种将接收器转换为字符串的方法。在下文中,a.to_s
不会更改a
的参考物。 a
返回3
。转换数据类型的方法
a = 3
a.to_s #=> "3"
a #=> 3
我想是这样
a = 3
a.some_method
a #=> "3"
a
应该返回"3"
。
只分配字符串。
a = 3
a = a.to_s
或者更简洁...
a = 3.to_s
有些对象是可变的,有些是不可变的,但没有机制,你可以使对象的3.some_method
变化DATA_TYPE(类)。
上述解决方案只是将所需的data_type的新对象分配给变量。
而且变量是非常“哑”的引用者,并且自己没有方法,因此a.some_method
对引用的对象(3.some_method
)调用#some_method
。
这是不可能的。无论方法返回什么对象,它都不会更改引用该接收方的变量的引用。
我不认为这是OP的要求。可变性是无关紧要的。您不能在Fixnum和String之间更改变量的引用。 – sawa 2014-09-11 06:03:22
@sawa你说得对我当我回到我的椅子上时我会编辑 – SteveTurczyn 2014-09-11 06:09:19
我需要一种方法来更新更改数据类型,而无需分配给自己。 – 2014-09-15 09:43:27