ฉันจะตั้งชื่อโปรแกรมของตัวเองที่รันไทม์ได้อย่างไร? อะไรที่เทียบเท่ากับ Argv [0] ของ C / C ++ สำหรับฉันมันมีประโยชน์ในการสร้างการใช้งานด้วยชื่อที่ถูกต้อง
อัปเดต: เพิ่มรหัส
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()