जहां तक मुझे वर्तमान में पता है, तो कम से कम/दो/प्रतियों के बिना परिणामस्वरूप स्ट्रिंग में स्ट्रिंग्स/बाइट्स के संयोजन के लिए एक तरीका तरीका नहीं है।
आपको वर्तमान में एक [] बाइट विकसित करना है क्योंकि सभी स्ट्रिंग मान हैं, फिर आपको भाषा को 'धन्य' स्ट्रिंग ऑब्जेक्ट बनाने के लिए स्ट्रिंग बिल्टिन का उपयोग करना होगा, जो कि कहीं कहीं से बफर को कॉपी करेगा [] बाइट का समर्थन करने वाले पते का संदर्भ हो सकता है।
यदि कोई [] बाइट उपयुक्त है तो आप बाइट्स पर बहुत ही मामूली सीसा प्राप्त कर सकते हैं। एक आवंटन करके और प्रतिलिपि बनाकर कार्य करें अपने आप को कॉल करें।
package main
import (
"fmt"
)
func main() {
m := make(map[int]string)
m[1] = "a" ; m[2] = "b" ; m[3] = "c" ; m[4] = "d"
ip := 0
/* If the elements of m are not all of fixed length you must use a method like this;
* in that case also consider:
* bytes.Join() and/or
* strings.Join()
* They are likely preferable for maintainability over small performance change.
for _, v := range m {
ip += len(v)
}
*/
ip = len(m) * 1 // length of elements in m
r := make([]byte, ip, ip)
ip = 0
for _, v := range m {
ip += copy(r[ip:], v)
}
// r (return value) is currently a []byte, it mostly differs from 'string'
// in that it can be grown and has a different default fmt method.
fmt.Printf("%s\n", r)
}
बजाय
स्रोत
2017-03-16 23:50:37
'_' अपने पाश के लिए, यह IDX फोन और IDX ++ व्यापार –
नहीं, वह नहीं कर सकते हैं खाई, जब आप एक नक्शा, मूल्य नहीं सूचकांक यह कुंजी रिटर्न से अधिक रेंज, मूल्य में। अपने उदाहरण में वह पहली कुंजी के रूप में 1 का उपयोग करता है और यह स्लाइस वी में इंडेक्स को गलत बना देगा क्योंकि स्टार्ट इंडेक्स शून्य नहीं होगा, और जब यह 4 हो जाएगा तो यह सीमा से बाहर होगा। https://play.golang.org/p/X8_SbgxK4VX – Popmedic