स्ट्रिंग्स के एक स्लाइस को एक स्ट्रिंग में कैसे शामिल किया जाए?


129
package main

import (
"fmt"
"strings"
)

func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}

मुझे एक त्रुटि देता है:

prog.go: 10: reg का उपयोग नहीं कर सकता (टाइप [3] स्ट्रिंग) टाइप करें [] स्ट्रिंग में तर्क स्ट्रिंग।

वहाँ एक सीधा या एक var से जोड़ने की तुलना में बेहतर तरीका है?


2
सिर्फ उपयोग क्यों नहीं reg := []string {"a","b","c"}?
सीन एम

जवाबों:


100

आपके प्रश्न का शीर्षक है:

स्ट्रिंग्स के एक स्लाइस को एक स्ट्रिंग में कैसे शामिल किया जाए?

लेकिन वास्तव में, regहै एक टुकड़ा है, लेकिन लंबाई-तीन सरणी। [...]stringइस मामले में (केवल इस मामले में) चीनी की मात्रा है[3]string

एक वास्तविक टुकड़ा पाने के लिए, आपको लिखना चाहिए:

reg := []string {"a","b","c"}

(इसे आज़माएं: https://play.golang.org/p/vqU5VtDilJ ।)

संयोग से, यदि आपको कभी भी स्ट्रिंग के एक सरणी में शामिल होने की आवश्यकता होती है, तो आप सरणी से एक टुकड़ा जोड़ सकते हैं [:], जैसे:

fmt.Println(strings.Join(reg[:], ","))

(इसे आज़माएं: https://play.golang.org/p/zy8KyC8OTuJ ।)


7
Pls, उत्तर में ही काम कोड प्रदान करें, खेल का मैदान एक प्लस है लेकिन स्वीकार्य उत्तर के लिए पर्याप्त नहीं; ;-) स्व-परीक्षा!
shayyx

8
@shadyyx: मैं सहमत हूं कि खेल का मैदान कड़ी कड़ाई से पूरक है; लेकिन मुझे यकीन नहीं है कि आप जो सोचते हैं वह उचित उत्तर से गायब है। ओपी की एकमात्र त्रुटि लाइन 10 पर थी, और मैंने स्पष्टीकरण के साथ, उस लाइन का सही संस्करण प्रदान किया। (क्या आप यह सुझाव दे रहे हैं कि मुझे उसके / उसके पूरे उदाहरण कार्यक्रम को उत्तर में कॉपी करना चाहिए था? यदि ऐसा है, तो - मैं असहमत हूं।)
१६:१६ 16:55

1
"एक स्लाइस को एक स्ट्रिंग में शामिल करने की कोशिश कर रहा है" आपका समाधान केवल सामान्य स्लाइस प्रकार के बजाय स्ट्रिंग्स के स्लाइस के लिए काम करता है ।
स्टीवन रूज

107

एक स्लाइस का उपयोग करें, एक ऐरे नहीं। बस इसका उपयोग करके बनाएं

reg := []string {"a","b","c"}

शामिल होने पर एक विकल्प को आपके सरणी को एक स्लाइस में बदलना होगा:

fmt.Println(strings.Join(reg[:],","))

स्लाइस और सरणियों के बीच अंतर के बारे में गो ब्लॉग पढ़ें ।


26

यह 2018 में अभी भी प्रासंगिक है।

तार

import strings
stringFiles := strings.Join(fileSlice[:], ",")

वापस स्लाइस पर वापस जाएं

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