関連記事
Goメモ-454 (flagパッケージ再入門)(01-FlagSet) - いろいろ備忘録日記
Goメモ-455 (flagパッケージ再入門)(02-Var) - いろいろ備忘録日記
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
最近、flaggy とかを利用していて、あまりflagパッケージを触らなくなってきているのですが
小さなツールをちゃちゃっとワンタイムで利用するときは、やっぱり使ったりします。
使っていないと忘れてしまいそうなので、ここに自分の備忘録として残しておこうと思います。
今回は、flag.Func()について。
flag.Func() は、func(string) error の関数を設定することで任意の処理を行うことが出来る関数です。
独自の処理を挟みたい時に使えます。
サンプル
package flags import ( "flag" "strings" "github.com/devlights/gomy/output" ) // Func は、flag.Func() のサンプルです. // // flag.Func() は、func(string) error の関数を設定することで // 任意の処理を行うことが出来る関数です。 // // # REFERENCES // - https://pkg.go.dev/flag@go1.22.4#Func func Func() error { var ( hs []string fs = flag.NewFlagSet("", flag.ExitOnError) ) fs.Func("hosts", "host names. comma separated.", func(v string) error { hs = strings.Split(v, ",") return nil }) fs.Parse([]string{"-hosts", "example.invalid,my.local,localhost"}) for _, h := range hs { output.Stdoutl("[h]", h) } return nil /* $ task task: [build] go build . task: [run] ./try-golang -onetime ENTER EXAMPLE NAME: flags_func [Name] "flags_func" [h] example.invalid [h] my.local [h] localhost [Elapsed] 42.06µs */ }
参考情報
Goメモ-428 (flaggyメモ)(01) - いろいろ備忘録日記
Goメモ-429 (flaggyメモ)(02) - いろいろ備忘録日記
Goメモ-430 (flaggyメモ)(03) - いろいろ備忘録日記
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。