2011-03-27 5 views
1

Ruby 구문의 직접적인 문자열 표현을 얻는 간단한 방법이 있습니까? 예를 들어Ruby에서 직접 문자열 표현

:

a = [:foo, :bar] 

a.to_s를 호출 할 때 내가 얻을 :

"foobar" 

내가 무엇을 찾고 있어요 것은 :

"[:foo, :bar]" 

답변

3

사용중인 Ruby 버전은 무엇입니까? 루비 1.9 사용하여 내가 얻을 :

irb(main):002:0> a = [:foo, :bar] 
=> [:foo, :bar] 
irb(main):003:0> a.to_s 
=> "[:foo, :bar]" 
irb(main):004:0> a.inspect 
=> "[:foo, :bar]" 

편집 : @ fl00r으로는 1.8.7에서 당신은 inspect을 사용할 수 있습니다 지적했다. 일반적으로 inspectto_s이 아닌 경우에도 사람이 읽을 수있는 문자열을 제공한다고 가정합니다. ruby docs에서 :

obj.inspect → 문자열

OBJ의 사람이 읽을 수있는 표현을 포함하는 문자열을 반환합니다. 재정의되지 않고 인스턴스 변수가없는 경우 to_s 메서드를 사용하여 문자열을 생성합니다.

to_s은 사람이 읽을 수있는 것으로 주장하지 않습니다.

+0

1.8.7에 가입 할 하나의 방법 ('inspect')를 사용할 수있는 방법을 자주 배열 – fl00r

+0

재미 결코 : 더 복잡한 객체의 경우

>> [:a, :b].inspect => "[:a, :b]" 

, 모두 도움이 될 수 없습니다 그것이 정말로하는 것을 깨닫는다 : - / – Zardoz

2

1.8.7에서는 inspect 방법을 사용할 수 있습니다 그 경우

a = [:foo, :bar] 
a_string = a.inspect 
0

inspect 당신이 찾고있는 무엇인가의 inspect 방법, 예컨대 : "간단한"객체의 경우

a = [:foo, :bar] 
a.inspect # => "[:foo, :bar]" 
0

을보십시오.

>> StringIO.new.inspect 
=> "#<StringIO:0x00000100cc68d8>" 
관련 문제