2014-11-25 6 views
23

Golang में कुछ ऐसा है?सुंदर प्रिंटिंग गोलांग चर

माणिक में उदाहरण के लिए आप लिख सकते हैं:

require 'ap' 
x = {a:1,b:2} // also works for class 
ap x 

उत्पादन होगा:

{ 
    "a" => 1, 
    "b" => 2 
} 

निकटतम बात है कि मैं नहीं मिल सकीं Printf("%#v", x)

+2

I जैसे [गो-स्पू] (https://github.com/davecgh/go-spew)। –

+2

यदि कोई बाहरी पैकेज स्वीकार्य है, तो [सुंदर] पर विचार करें (http://godoc.org/github.com/kr/pretty#example-package)। – Mark

उत्तर

45

अपने लक्ष्य को एक तीसरे पक्ष के पैकेज का आयात से बचना है, तो अपने अन्य विकल्प का उपयोग करने के लिए है json.MarshalIndent:

x := map[string]interface{}{"a": 1, "b": 2} 
b, err := json.MarshalIndent(x, "", " ") 
if err != nil { 
    fmt.Println("error:", err) 
} 
fmt.Print(string(b)) 

आउटपुट:

{ 
    "a": 1, 
    "b": 2 
} 

कार्य नमूना: http://play.golang.org/p/SNdn7DsBjy

+0

इंडेशन के कई स्तरों का परीक्षण करना। https://play.golang.org/p/d3nO4Rht90 – Xeoncross

+0

कस्टम स्ट्रक्चर (असमर्थित प्रकार त्रुटि) होने पर मार्शल को गंभीर समस्या हो जाती है। इसे ठीक करने का कोई आसान तरीका? – etang

+0

@etang आपको मेरे लिए एक बेहतर उत्तर देने के लिए एक साधारण उदाहरण दिखाना होगा (शायद खेल का मैदान?)। मुझे कल्पना है कि यदि आप जटिल हो जाते हैं तो आपको अपने प्रकार को अनारक्षित करने के लिए JSON पैकेज इंटरफ़ेस को कार्यान्वित करना होगा। –

9

कोई बात नहीं है, मैं एक पाया: https://github.com/davecgh/go-spew

// import "github.com/davecgh/go-spew/spew" 
x := map[string]interface{}{"a":1,"b":2} 
spew.Dump(x) 

एक आउटपुट देना चाहेंगे:

(map[string]interface {}) (len=2) { 
(string) (len=1) "a": (int) 1, 
(string) (len=1) "b": (int) 2 
} 
संबंधित मुद्दे