2010-02-17 2 views
2

파이썬의 repr 함수는 굉장합니다 : 객체의 인쇄 가능한 표현을 반환합니다.액션 스크립트 : 파이썬의`repr` (즉, 객체의 유용한 문자열 표현)과 같은 것인가요?

예를 들어, repr(["a'b", {1: 2}, u"foo"])'["a\'b", {1: 2}, u\'foo\']' 문자열입니다. 예를 들어, 따옴표가 어떻게 적절히 이스케이프되는지주의하십시오.

ActionScript에 이와 비슷한 것이 있습니까?

예를 들어, [1, 2, ["3", "4"]].toString()"1,2,3,4"이라는 문자열을 생성합니다. 그다지별로 도움이되지 않습니다. 나는 문자열을 생산하고 싶습니다 ... 음, '[1, 2, ["3", "4"]]'.

JSON 라이브러리 사용을 고려해 보았습니다 ...하지만 실제로는 원하지 않는 임의의 객체의 인스턴스를 직렬화하려고 시도하기 때문에 이상적이지 않습니다.

답변

0

이 remotley 가까운 유일 :

valueOf() 

공공 기능 valueOf() : 객체

언어 버전 : ActionScript 3.0 런타임 버전 : AIR 1.0, 플래시 플레이어 9 개

반환 지정된 객체의 프리미티브 값 이 객체에 프리미티브 값이없는 경우 객체 자체가 반환됩니다.

참고 : Object 클래스의 메서드는 Object의 프로토 타입에 동적으로 만들어집니다. Object의 하위 클래스에서이 메서드를 재정의하려면 override 키워드를 사용하지 마십시오. 예를 들어 Object의 하위 클래스는 기본 클래스의 재정의를 사용하는 대신 function valueOf() : Object를 구현합니다.

반품 Object -이 객체 또는 객체 자체의 프리미티브 값입니다.

+0

불행히도, 이것은 도움이되지 않습니다. 문서를 읽은 후에,'valueOf'의 목적이 무엇인지는 완전히 명확하지 않습니다 ... 그러나 이것은 그렇지 않습니다. valueOf() == "1,2,3,4'. –

1

는 AFAIK, 바로 어도비에서 난 당신이 ObjectUtil 시도 할 수

http://livedocs.adobe.com/flex/3/html/help.html?content=usingas_8.html

+0

Hhmm ...'ObjectUtil.toString (...)'이 실행되는 동안, –

+0

그래, ObjectUtil.toString() 좀 멍청 하긴하지만 루프 예제를 사용하여 자신 만의 덤프 함수를 만들 수있다. 조금 추가하면된다. 재귀와 당신은 좋은, 또는 적어도 당신이 할 수있는만큼 좋은거야. – invertedSpear

0

를 추가 할 수 있습니다 당신이 원하는 것을, 그러나 여기에서 그것을 할 수있는 방법의 그 어떤 빠른 쉬운 줄 명령이없는 .toString 함수를 사용하면 멋지게 원하는 것은 아니지만 기능면에서 "원하는 객체를 문자열로 미리 인쇄합니다."라고 설명하면 원하는 것보다 더 가까운 것을 찾을 수있을 것 같지 않습니다. ,하지만 당신이 원하는 훨씬 더 많은 정보를 유지합니다. Array는 복잡한 데이터 객체이므로 그처럼 주석을 달았습니다.

내가 repr이 예제를 처리 할 방법을 궁금하네요
var a:Array = [1, 2, ["3", "4"]]; 
    trace (ObjectUtil.toString(a)); 
    // returns 
    // (Array)#0 
    // [0] 1 
    // [1] 2 
    // [2] (Array)#1 
    // [0] "3" 
    // [1] "4" 

:

var a:Array = [0,1,2]; 
a.push(a);     
trace (ObjectUtil.toString(a)); 
    // returns 
    // (Array)#0 
    // [0] 0 
    // [1] 1 
    // [2] 2 
    // [3] (Array)#0 
0

예 난 당신이 솔루션은 매우 간단합니다 원하는 것을 알고, 그것을 완료 JSON 객체를 사용! 예를 들어

:

trace(JSON.stringify('hello')); 
trace(JSON.stringify(['yet', 'another'])); 
trace(JSON.stringify({hello: 'world'})); 

그것을보십시오!

자세한 내용은 here을 참조하십시오.