関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。
結構長いことGoを使っているのですが、ホームディレクトリの取得にいつも user.Current().HomeDir を使っていました。
Go 1.12から os.UserHomeDir が追加されていたのですね・・・知らなかった。
サンプル
homedir.go
package osop import ( "fmt" "os" "os/user" ) // HomeDir は、os.UserHomeDir()のサンプルです。 // Go 1.12から追加された関数。user.Current.HomeDirを使わなくても良くなる。 // // osパッケージ側に以下の関数が用意されている // // - os.UserHomeDir // - os.UserConfigDir // - os.UserCacheDir // // # REFERENCES // - https://pkg.go.dev/os@go1.25.5#UserHomeDir // - https://text.baldanders.info/golang/no-need-go-homedir/ func HomeDir() error { // go 1.12より前は以下の様にしていた。 u, err := user.Current() if err != nil { return fmt.Errorf("user.Current: %w", err) } fmt.Printf("user.Current.HomeDir: %s\n", u.HomeDir) // go 1.12以降は以下で取得できる homedir, err := os.UserHomeDir() if err != nil { return fmt.Errorf("os.UserHomeDir: %w", err) } fmt.Printf("os.HomeDir: %s\n", homedir) return nil }
実行結果
$ task task: [run] ./try-golang -onetime ENTER EXAMPLE NAME: osop_homedir [Name] "osop_homedir" user.Current.HomeDir: /home/dev os.HomeDir: /home/dev [Elapsed] 1.929271ms
参考情報
個人的Goのおすすめ書籍
個人的に読んでとても勉強になった書籍さんたちです。
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。






