मैं अपने प्रोग्राम का नाम रनटाइम पर कैसे प्राप्त कर सकता हूं? C / C ++ के argv [0] के बराबर Go क्या है? मेरे लिए यह सही नाम के साथ उपयोग उत्पन्न करने के लिए उपयोगी है।
अद्यतन: कुछ कोड जोड़ा गया।
package main
import (
"flag"
"fmt"
"os"
)
func usage() {
fmt.Fprintf(os.Stderr, "usage: myprog [inputfile]\n")
flag.PrintDefaults()
os.Exit(2)
}
func main() {
flag.Usage = usage
flag.Parse()
args := flag.Args()
if len(args) < 1 {
fmt.Println("Input file is missing.");
os.Exit(1);
}
fmt.Printf("opening %s\n", args[0]);
// ...
}
सही उत्तर है
—
fiorix
os.Args[]
, नहीं flag.Args()
। ध्वज पैकेज कमांड लाइन तर्कों को पार्स करने के लिए है -this -that
, और flag.Args()
शेष तर्कों को वापस नहीं लौटाया जाता है। यहाँ एक उदाहरण है: play.golang.org/p/_YtTcqLWnl
flag.Args()
यहाँ की लंबाई का पता लगाने के बजाय आप उपयोग कर सकते हैंflag.NArg()