ऐसा लगता है कि आप (लगभग) यहां उपयोग करने के लिए सीधे सी कोड को कोशिश कर रहे हैं। जाओ कुछ मतभेद हैं।
- सबसे पहले, आप
const
के रूप में सरणी और स्लाइस को प्रारंभ नहीं कर सकते हैं। const
शब्द का गो में एक अलग अर्थ है, क्योंकि यह सी में करता है। सूची को var
के रूप में परिभाषित किया जाना चाहिए।
- दूसरा, स्टाइल नियम के रूप में,
basename_opts
के विपरीत basenameOpts
पसंद करते हैं।
- कोई
char
गो में टाइप नहीं है। यदि आप यूनिकोड कोडपॉइंट्स को अनुमति देना चाहते हैं तो शायद आप byte
(या rune
चाहते हैं)।
- सूची की घोषणा इस मामले में असाइनमेंट ऑपरेटर होना चाहिए। उदा।
var x = foo
।
- गो के पार्सर की आवश्यकता है कि एक सूची घोषणा में प्रत्येक तत्व अल्पविराम के साथ समाप्त होता है। इसमें अंतिम तत्व शामिल है। इसका कारण यह है कि जब आवश्यक हो वहां स्वचालित रूप से सेमी-कॉलन डालें। और काम करने के लिए इसके लिए कुछ हद तक कठोर वाक्यविन्यास की आवश्यकता है।
उदाहरण के लिए:
type opt struct {
shortnm byte
longnm, help string
needArg bool
}
var basenameOpts = []opt {
opt {
shortnm: 'a',
longnm: "multiple",
needArg: false,
help: "Usage for a",
},
opt {
shortnm: 'b',
longnm: "b-option",
needArg: false,
help: "Usage for b",
},
}
एक वैकल्पिक अपने प्रकार के साथ सूची की घोषणा करने और फिर एक init
फ़ंक्शन का उपयोग करें यह को भरने के लिए है। यदि आप डेटा संरचना में फ़ंक्शंस द्वारा लौटाए गए मानों का उपयोग करना चाहते हैं तो यह अधिक उपयोगी होता है। init
फ़ंक्शन चलाए जाते हैं जब प्रोग्राम प्रारंभ किया जा रहा है और main
से पहले समाप्त होने की गारंटी दी जाती है। आपके पास पैकेज में एकाधिक init
फ़ंक्शंस, या यहां तक कि एक ही स्रोत फ़ाइल में हो सकते हैं।
type opt struct {
shortnm byte
longnm, help string
needArg bool
}
var basenameOpts []opt
func init() {
basenameOpts = []opt{
opt {
shortnm: 'a',
longnm: "multiple",
needArg: false,
help: "Usage for a",
},
opt {
shortnm: 'b',
longnm: "b-option",
needArg: false,
help: "Usage for b",
},
)
}
जब से तुम जाओ के लिए नए हैं, मैं दृढ़ता से the language specification के माध्यम से पढ़ने की सलाह। यह बहुत छोटा और बहुत स्पष्ट रूप से लिखा गया है। यह आपके लिए बहुत कम idiosyncrasies को साफ़ करेगा।
एक आम प्रारंभ समय में यह सब परिभाषित करने के लिए जिस तरह से एक गुमनाम struct उपयोग कर रहा है:
var opts = []struct {
shortnm byte
longnm, help string
needArg bool
}{
{'a', "multiple", "Usage for a", false},
{
shortnm: 'b',
longnm: "b-option",
needArg: false,
help: "Usage for b",
},
}
यह आमतौर पर परीक्षण के लिए प्रयोग किया जाता है