2014-09-11 66 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

這是不可能的。無論方法返回什麼對象,它都不會更改引用該接收方的變量的引用。