什么是相当于argv ?

我怎样才能在运行时获得我自己的程序的名字? C / C ++的argv [0]等价于什么? 对我来说,用正确的名字来产生用法是很有用的。

更新:添加了一些代码。

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]); // ... } 
 import "os" os.Args[0] // name of the command that it is running as os.Args[1] // first command line parameter, ... 

参数暴露在os包中http://golang.org/pkg/os/#Variables

如果你要做参数处理, flaghttp://golang.org/pkg/flag是首选的方法。; 特别为你的情况flag.Usage

更新你给的例子:

 func usage() { fmt.Fprintf(os.Stderr, "usage: %s [inputfile]\n", os.Args[0]) flag.PrintDefaults() os.Exit(2) } 

应该做的伎俩

使用os包中的os.Args[0]

 package main import "os" func main() { println("I am ", os.Args[0]) }