20

flagsパッケージはこれらすべてをまだ処理していないため、Go 用の GNU スタイルのコマンドライン パーサーを作成しようとしています。

program -aAtGc --long-option-1 argument-to-1 --long-option-2 -- real-argument

flags明らかに、パッケージを置き換えようとしているので、パッケージを使用したくありません。コマンドラインにアクセスする他の方法はありますか?

4

2 に答える 2

45

どうでも。

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])
    }
}

ただし、ドキュメントはかなり不完全です。

于 2009-11-11T15:26:56.180 に答える
0

os.Args の最初の引数は go ファイルの名前であるため、コマンド ライン引数のみを取得するには、次のようにする必要があります。

package main

import (
    "fmt"
    "os"
)

func main() {
    args := os.Args[1:]

    for i := 0; i<len(args); i++ {
        fmt.Println(args[i])
    }
}
于 2021-02-02T08:20:38.567 に答える