2014-09-11 83 views
0

我正在寻找一种将接收器转换为字符串的方法。在下文中,a.to_s不会更改a的参考物。 a返回3转换数据类型的方法

a = 3 
a.to_s #=> "3" 
a #=> 3 

我想是这样

a = 3 
a.some_method 
a #=> "3" 

a应该返回"3"

回答

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

+3

我不认为这是OP的要求。可变性是无关紧要的。您不能在Fixnum和String之间更改变量的引用。 – sawa 2014-09-11 06:03:22

+1

@sawa你说得对我当我回到我的椅子上时我会编辑 – SteveTurczyn 2014-09-11 06:09:19

+0

我需要一种方法来更新更改数据类型,而无需分配给自己。 – 2014-09-15 09:43:27

2

这是不可能的。无论方法返回什么对象,它都不会更改引用该接收方的变量的引用。