以下の内容はhttps://devlights.hatenablog.com/entry/2025/08/25/073000より取得しました。


Goメモ-609 (flagパッケージはデフォルトで"--"(ダブルダッシュ)形式がサポートされている)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。忘れないうちにメモメモ。。。

恥ずかしながら、知りませんでした。flagパッケージってデフォルトで --flag のようなロングオプション形式に対応しているんですね。。。

思いっきり、パッケージドキュメントにも書いてありました。

The following forms are permitted:

-flag
--flag   // double dashes are also permitted
-flag=x
-flag x  // non-boolean flags only

サンプル

examples/basic/flags/double_dashes_permitted.go

package flags

import (
    "flag"

    "github.com/devlights/gomy/output"
)

// DoubleDashesPermitted は、flagパッケージにてデフォルトで "--flag" の指定が許容されていることを示すサンプルです。
//
// flagパッケージのドキュメントにて以下の形が許容されると記載があります。
//
// -flag
// --flag
// -flag=x
// -flag x
//
// # REFERENCES
//   - https://pkg.go.dev/flag@go1.25.0#hdr-Command_line_flag_syntax
func DoubleDashesPermitted() error {
    var (
        fs = flag.NewFlagSet("double-dashes", flag.ExitOnError)
        f1 = fs.Int("flag1", 0, "")
        f2 = fs.Int("flag2", 0, "")
        f3 = fs.Bool("flag3", false, "")
        f4 = fs.Bool("flag4", true, "")

        argv = []string{"-flag1", "10", "--flag2=20", "--flag3", "-flag4=false"}

        err error
    )
    if err = fs.Parse(argv); err != nil {
        return err
    }

    output.Stdoutl("[flag1]", *f1)
    output.Stdoutl("[flag2]", *f2)
    output.Stdoutl("[flag3]", *f3)
    output.Stdoutl("[flag4]", *f4)

    return nil

    /*
      $ task

      task: [build] go build -o "/workspace/try-golang/try-golang" .
      task: [run] ./try-golang -onetime

      ENTER EXAMPLE NAME: flags_double_dashes

      [Name] "flags_double_dashes"
      [flag1]              10
      [flag2]              20
      [flag3]              true
      [flag4]              false

      [Elapsed] 70.25µs
   */
}

参考情報

Goのおすすめ書籍


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。




以上の内容はhttps://devlights.hatenablog.com/entry/2025/08/25/073000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14