我正在嘗試為Go寫(xiě)一個(gè)GNU風(fēng)格的命令行解析器,因?yàn)樵揻lags包還不能處理所有這些:program -aAtGc --long-option-1 argument-to-1 --long-option-2 -- real-argument顯然,我不想使用該flags軟件包,因?yàn)槲艺噲D替換它。還有其他方法可以進(jìn)入命令行嗎?
2 回答

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
沒(méi)關(guān)系。
package main
import (
"fmt"
"os"
)
func main() {
args := os.Args
fmt.Printf("%d\n", len(args))
for i := 0; i<len(args); i++ {
fmt.Printf("%s\n", args[i])
}
}
但是,該文檔還很不完整。

湖上湖
TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
os.Args的第一個(gè)參數(shù)是go文件的名稱(chēng),因此,僅獲取命令行參數(shù),您應(yīng)該執(zhí)行以下操作
package main
import (
"fmt"
"os"
)
func main() {
args := os.Args[1:]
for i := 0; i<len(args); i++ {
fmt.Println(args[i])
}
}
- 2 回答
- 0 關(guān)注
- 291 瀏覽
添加回答
舉報(bào)
0/150
提交
取消