我正在尋找一種將接收器轉換爲字符串的方法。在下文中,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