एक प्रकार Char
टाइप करने का प्रयास कर रहा है जो एक string
एक वर्ण लंबा है। जो मैं करने में असमर्थ हूं वह "कन्स्ट्रक्टर" बना रहा है। मुझे पता है कि मैं कुछ पूरी तरह से याद कर रहा हूँ।गो में, मैं एक स्ट्रिंग बेस प्रकार वाले प्रकार के लिए "कन्स्ट्रक्टर" कैसे बना सकता हूं?
Char
प्रकार की घोषणा
type Char string
एक घोषणा
var c1 Char("abc") var c2 Char = "abc"
इन गलत हैं के साथ उस प्रकार का उपयोग कर सकते हैं: c1
और c2
होने के लिए "एक" की जरूरत है, नहीं "abc"
जो मैं वास्तव में चाहता हूं वह चार से एक वर्ण को सीमित करने के लिए "कन्स्ट्रक्टर" है
func Char(s string) Char { var ch string = s[0] return ch }पाठ्यक्रम
type Char
और
func Char
होने के
जिस तरह से यह
type.go:8: Char redeclared in this block
वहाँ एक निर्माता के माध्यम से type
आरंभीकरण के लिए मजबूर करने के लिए किसी भी तरह से है करने के लिए नहीं है? या मैं भी सही सवाल पूछ रहा हूँ?
मुझे राज्य को अलग ढंग से करते हैं: उपयोगकर्ता कहते हैं अगर var c Char = "abc"
वे प्रकार Char
लिए एक अमान्य मान होगा - वहाँ func NewChar(string) Char
Char
के रूप में के ही मान्य निर्माता में उपयोगकर्ता के लिए मजबूर करने के लिए किसी भी तरीका है?
यह गो प्रोग्रामिंग भाषा है, गोलांग नहीं। – peterSO
गोलांग के बारे में खेद है - सोचा था कि मैं इसे मानक रेफरी के रूप में देख रहा था। "गो" बनाम "गोलांग" के लिए गॉगलिंग के बीच का अंतर बहुत बड़ा है, इसलिए हमेशा "गोलांग" वाक्यांश को सौजन्य के रूप में रखने की कोशिश की गई है, लेकिन सुझावों के लिए खुला –
यदि आप कन्स्ट्रक्टर को मजबूर करना चाहते हैं, तो आपको अपना कोड अलग से रखना चाहिए पैकेज, सार्वजनिक इंटरफ़ेस और एक कन्स्ट्रक्टर का पर्दाफाश करें जो एक निजी संरचना को वापस लाएगा जो इंटरफ़ेस लागू करता है। –