Go言語学習10日目:標準パッケージを使って「できること」を広げてみた

Go言語学習もいよいよ10日目に突入!
「標準パッケージってどんなものがあるの?」というテーマで進めていきます。

これまで学んできた文法や関数だけではちょっと物足りなくなってきたので、
標準ライブラリを使ってコードの幅を広げていく日です!


そもそも「標準パッケージ」って?

Goでは、import を使っていろんな便利機能を追加できます。
しかも、Goに最初から入っている(外部ライブラリ不要)ものがたくさんあるんです!

今回は特に初心者にとってよく使うこの3つに注目👇

パッケージ 主な用途
fmt 文字列出力、フォーマット処理
os ファイルや環境変数の操作
strconv 文字列⇔数値の変換

fmt:画面への出力やフォーマットに便利!

package main

import "fmt"

func main() {
    name := "たろう"
    age := 28
    fmt.Printf("%sさんは%d歳です。\n", name, age)
}

Printf は C言語ライクな書式付き出力。 → %s(文字列), %d(整数), %f(小数)など

他にも:

  • fmt.Println("こんにちは") → 改行つき出力
  • fmt.Sprintf(...) → 文字列として出力結果を受け取れる

os:環境変数やファイルを扱う

package main

import (
    "fmt"
    "os"
)

func main() {
    user := os.Getenv("USER") // または "USERNAME" (Windows)
    fmt.Println("ログインユーザー:", user)

    args := os.Args
    fmt.Println("実行引数:", args)
}

os.Getenv:環境変数を取得
os.Args:コマンドライン引数を取得(配列として)


strconv:文字列⇔数値の変換に便利!

Goは型にうるさい言語なので、文字列から数値に変換する場面がけっこうあります。。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "42"
    num, err := strconv.Atoi(str)
    if err != nil {
        fmt.Println("変換エラー:", err)
        return
    }

    fmt.Println("変換後の数値:", num)

    backToStr := strconv.Itoa(num)
    fmt.Println("数値から文字列へ:", backToStr)
}

Atoi:文字列 → 整数
Itoa:整数 → 文字列
エラー処理付きなので安全!


小さな応用:引数から年齢を受け取って出力する

package main

import (
    "fmt"
    "os"
    "strconv"
)

func main() {
    if len(os.Args) < 2 {
        fmt.Println("年齢を引数で指定してください")
        return
    }

    ageStr := os.Args[1]
    age, err := strconv.Atoi(ageStr)
    if err != nil {
        fmt.Println("数値に変換できません:", err)
        return
    }

    fmt.Printf("あなたは%d歳ですね!\n", age)
}
$ go run main.go 25
→ あなたは25歳ですね!

os + strconv の組み合わせで、CLIっぽいツールが作れる!


今日のまとめ

Go言語10日目の学習ポイントまとめ
  • fmt:フォーマット出力で読みやすい表示ができる
  • os:コマンドライン引数や環境変数が扱える
  • strconv:文字列と数値の安全な変換ができる
  • 標準パッケージを使うと、コードがぐっと現実的になる!