Go
पार्सिंग कमांड लाइन तर्क और झंडे
खोज…
कमांड लाइन तर्क
कमांड लाइन तर्क पार्सिंग गो अन्य भाषाओं के समान है। आपके कोड में आप केवल उन तर्कों के स्लाइस तक पहुँचते हैं जहाँ पहला तर्क प्रोग्राम का नाम होगा।
त्वरित उदाहरण:
package main
import (
"fmt"
"os"
)
func main() {
progName := os.Args[0]
arguments := os.Args[1:]
fmt.Printf("Here we have program '%s' launched with following flags: ", progName)
for _, arg := range arguments {
fmt.Printf("%s ", arg)
}
fmt.Println("")
}
और उत्पादन होगा:
$ ./cmd test_arg1 test_arg2
Here we have program './cmd' launched with following flags: test_arg1 test_arg2
प्रत्येक तर्क सिर्फ एक स्ट्रिंग है। os
पैकेज में ऐसा दिखता है: var Args []string
झंडे
गो स्टैंडर्ड लाइब्रेरी पैकेज flag
प्रदान करता है जो प्रोग्राम को पारित किए गए पार्सिंग झंडे के साथ मदद करता है।
ध्यान दें कि flag
पैकेज सामान्य रूप से GNU- शैली के झंडे प्रदान नहीं करता है। इसका मतलब है कि बहु-अक्षर झंडे एकल हाइफ़न के साथ शुरू होने चाहिए जैसे: -exampleflag
, यह नहीं: --exampleflag
। जीएनयू-शैली के झंडे कुछ 3-आरडी पार्टी पैकेज के साथ किए जा सकते हैं।
package main
import (
"flag"
"fmt"
)
func main() {
// basic flag can be defined like this:
stringFlag := flag.String("string.flag", "default value", "here comes usage")
// after that stringFlag variable will become a pointer to flag value
// if you need to store value in variable, not pointer, than you can
// do it like:
var intFlag int
flag.IntVar(&intFlag, "int.flag", 1, "usage of intFlag")
// after all flag definitions you must call
flag.Parse()
// then we can access our values
fmt.Printf("Value of stringFlag is: %s\n", *stringFlag)
fmt.Printf("Value of intFlag is: %d\n", intFlag)
}
flag
हमारे लिए संदेश की मदद करता है:
$ ./flags -h
Usage of ./flags:
-int.flag int
usage of intFlag (default 1)
-string.flag string
here comes usage (default "default value")
सभी झंडे के साथ कॉल करें:
$ ./flags -string.flag test -int.flag 24
Value of stringFlag is: test
Value of intFlag is: 24
लापता झंडे के साथ कॉल करें:
$ ./flags
Value of stringFlag is: default value
Value of intFlag is: 1
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow