स्लाइस के मूल्यों को कैसे प्रिंट करें


103

मैं उन मूल्यों को देखना चाहता हूं जो स्लाइस में हैं। मैं उन्हें कैसे प्रिंट कर सकता हूं?

projects []Project  

9
इसके अलावा fmt.Println(projects)?
Not_a_Golfer

4
इसके अलावा: [] प्रोजेक्ट्स एक स्लाइस है, न कि एक सरणी: golang.org/blog/go-slices-usage-and-internals
elithrar

आप सभी ने मुझे -1 क्यों दिया?
fnr

2
@ माफ करना, लेकिन समीक्षकों ने शायद यह महसूस किया कि प्रश्न आसानी से डॉक्टर द्वारा हल किया गया था। मैंने यह दिखाने के लिए अपना उत्तर अपडेट कर दिया है कि यह हमेशा स्पष्ट नहीं होता है। आप अपना प्रश्न छोड़ सकते हैं, यह एक वैध है।
वॉन

2
@fnr - इस साइट पर -1 का अर्थ है प्रश्न: "शोध के प्रयास नहीं दिखाते; यह अस्पष्ट या उपयोगी नहीं है"। इसलिए मैं देखता हूं कि आपने अपने प्रश्न "गो" और "सरण" को टैग किया है और उन्हें "कैसे प्रिंट करें" जानना चाहते हैं। अगर मैं Google.com पर जाएं और खोज "प्रोग्रामिंग भाषा ट्यूटोरियल सरणियों जाना" मैं सहित संसाधनों का एक नंबर मिल यह जो है जैसे कि यह मदद कर सकता है लग रहा है। इसलिए यदि यह मदद करता है, तो यह दिखाता है कि आपने पोस्ट करने से पहले बहुत शोध नहीं किया है। यदि यह मदद नहीं करता है, तो आपको इस तरह की साइटों को कॉल करने की आवश्यकता है जिन्हें आपने खोजा था और समझाएं कि यह सहायक क्यों नहीं था।
माइक

जवाबों:


171

आप जाने की कोशिश कर सकते हैं %v, %+vया जाने की%#v क्रिया :

fmt.Printf("%v", projects)

यदि आपके सरणी (या यहाँ स्लाइस ) में struct(जैसे Project) शामिल हैं, तो आप उनका विवरण देखेंगे।
अधिक सटीकता के लिए, आप %#vगो-वाक्य रचना का उपयोग करके ऑब्जेक्ट को प्रिंट कर सकते हैं , जैसे कि शाब्दिक के लिए:

%v  the value in a default format.
    when printing structs, the plus flag (%+v) adds field names
%#v a Go-syntax representation of the value

बुनियादी प्रकारों के लिए, fmt.Println(projects)पर्याप्त है।


नोट: पॉइंटर्स के एक स्लाइस के लिए, जो []*Project(इसके बजाय []Project) है, आप एक String()विधि को परिभाषित करने के लिए बेहतर तरीके से परिभाषित कर रहे हैं ताकि आप जो देखना चाहते हैं (या आप केवल सूचक पता देखेंगे)।
इस नाटक को देखें । गोलंग उदाहरण


26

एक के लिए []string, आप उपयोग कर सकते हैं strings.Join():

s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
// output: foo, bar, baz

17

मैं पसंद fmt.Printf("%+q", arr)करता हूं जो छापेगा

["some" "values" "list"]

https://play.golang.org/p/XHfkENNQAKb


1
अल्पविराम विभाजक के साथ सरणी कैसे प्राप्त करें ??
शोबा

¯ \ _ (ツ) _ / ¯ यदि आपको लघु समाधान मिल जाए तो कृपया इसे इस प्रश्न के उत्तर के रूप में जोड़ें। मैं शर्त लगा रहा हूं कि ज्यादातर लोग क्या देख रहे हैं।
पाइलिनक्स 14

4

यदि आप बिना कोष्ठक के किसी सरणी के मान देखना चाहते हैं, तो आप fmt.Sprint()और के संयोजन का उपयोग कर सकते हैंstrings.Trim()

a := []string{"a", "b"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]"))
fmt.Print(a)

यह दिखाता है:

a b
[a b]

हालांकि इस बात से अवगत रहें कि इस समाधान से कोई भी प्रमुख कोष्ठक पहले मूल्य से खो जाएगा और कोई भी अनुगामी कोष्ठक अंतिम मान से खो जाएगा

a := []string{"[a]", "[b]"}
fmt.Print(strings.Trim(fmt.Sprint(a), "[]")
fmt.Print(a)

यह दिखाता है:

a] [b
[[a] [b]]

अधिक जानकारी के लिए स्ट्रिंग्स के लिए दस्तावेज देखें। श्रीमति ()


fmt.Printf (strings.Trim (fmt.Sprintf (a), "[]") दाहिने हाथ की तरफ
परवीन को याद कर रहा है


0

(मौजूदा उत्तर पर टिप्पणी करने के लिए एक खाता बनाया गया है, लेकिन मैं तब तक टिप्पणी नहीं कर सकता जब तक कि मेरे पास पर्याप्त प्रतिनिधि न हो)

यदि आप किसी स्लाइस में उसी प्रारूप में जानकारी देखना चाहते हैं जिसे आप इसे टाइप करने के लिए उपयोग करेंगे (कुछ [जैसे "एक", "दो", "तीन"]), तो यहां एक कोड उदाहरण दिखाया गया है कि कैसे करना है :

https://play.golang.org/p/vOF6xZ__Otr


3
ढेर अतिप्रवाह में आपका स्वागत है! जब तक आपका उत्तर विषय में कुछ नया योगदान देता है, तब तक वह उत्तर अनुभाग में होता है। यह कहने की ज़रूरत नहीं है कि आपका प्रतिनिधि बहुत कम है; आपकी पोस्ट सही है जहां वह संबंधित है :) यह कहा जा रहा है, यह आमतौर पर किसी भी कोड को सीधे उपयोग करने के बजाय किसी अन्य साइट के लिंक के रूप में शामिल करने के लिए पसंद किया जाता है। लिंक को छोड़ने के लिए स्वतंत्र महसूस करें, लेकिन अपने उत्तर में कोड को भी कॉपी करें। धन्यवाद!
दास_गीक

0

आप सुंदर टुकड़ा पैकेज का उपयोग कर सकते हैं:

package main

import pretty "github.com/inancgumus/prettyslice"

func main() {
    nums := []int{1, 9, 5, 6, 4, 8}
    odds := nums[:3]
    evens := nums[3:]

    nums[1], nums[3] = 9, 6
    pretty.Show("nums", nums)
    pretty.Show("odds : nums[:3]", odds)
    pretty.Show("evens: nums[3:]", evens)
}

यह कोड इस तरह उत्पादन और उत्पादन करने जा रहा है:

यहां छवि विवरण दर्ज करें


अधिक जानकारी के लिए, कृपया पढ़ें: https://github.com/inancgumus/prettyslice

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.