2014-09-11 5 views
0

받는 사람을 문자열로 변환하는 메서드를 찾고 있습니다. 다음에서 a.to_sa의 대상을 변경하지 않습니다. a3을 반환합니다.데이터 형식을 변환하는 메서드

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가 요구하고 있었던 것이라고 생각하지 않는다. 그리고 mutability는 무의미합니다. Fixnum과 String 사이의 변수의 대상을 변경할 수 없습니다. – sawa

+1

@sawa 네가 맞아. 내 의자에있을 때 편집 할께. – SteveTurczyn

+0

자체에 할당하지 않고 변경 데이터 유형을 업데이트하는 방법이 하나만 필요합니다. –

2

그건 불가능합니다. 메소드가 반환하는 객체가 무엇이든, 해당 수신기를 참조하는 변수의 참조 대상을 변경하지 않습니다.

관련 문제