NU:LOGiC Logo

【Go言語】Go 言語でよく使う便利な標準パッケージ

【Go言語】Go 言語でよく使う便利な標準パッケージ

Go言語の特徴のひとつとして、豊富な標準パッケージが用意されていることが挙げられます。今日は、Go開発でよく使う便利な標準パッケージについて、具体的なコード例とともに解説していきます!

3行で要約すると

  • Go言語には様々な標準パッケージが用意され、日常的なプログラミングをサポートします。
  • fmt, os, time, net/http など、多くの便利なパッケージが提供されている。
  • 標準パッケージの活用は開発の効率を大幅に向上させることができます。

1. fmt: フォーマットと入出力を扱う

コード例:

package main

import "fmt"

func main() {
    name := "Taro"
    fmt.Printf("Hello, %s!\n", name)
}

出力結果:

Hello, Taro!

解説

fmt パッケージは、文字列のフォーマットやコンソールへの入出力を手助けします。上記の例では、Printf 関数を使用して変数 name を文字列内で使っています。

2. os: オペレーティングシステム関連の機能

コード例

package main

import (
    "fmt"
    "os"
)

func main() {
    homeDir, _ := os.UserHomeDir()
    fmt.Println("Your home directory is:", homeDir)
}

出力結果

Your home directory is: /home/Taro

解説

os パッケージは、OSに関連した操作を行うための関数や値を提供します。この例では、ユーザーのホームディレクトリのパスを取得して出力しています。

3. time: 時間に関する操作

コード例:

package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    fmt.Println("Current time:", now.Format("2006-01-02 15:04:05"))
}

出力結果

Current time: 2023-09-15 12:34:56

解説

time パッケージは、日付や時刻に関連した操作をサポートします。上記のコードでは、現在の時刻を取得し、特定のフォーマットで出力しています。

4. net/http: HTTPクライアントとサーバ

コード例

package main

import (
    "fmt"
    "net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, Go!")
}

func main() {
    http.HandleFunc("/", helloHandler)
    http.ListenAndServe(":8080", nil)
}

出力結果

Webブラウザに http://localhost:8080/ と入力すると、 Hello, Go! と表示されます。

解説

net/http パッケージは、HTTPサーバやクライアントの機能を提供します。上記の例では、シンプルなHTTPサーバを起動し、ルートパスにアクセスすると挨拶メッセージが表示されます。

5. strconv: 文字列変換

コード例

package main

import (
    "fmt"
    "strconv"
)

func main() {
    numStr := "12345"
    num, _ := strconv.Atoi(numStr)
    fmt.Println(num + 5678)
}

出力結果

69123

解説

strconv パッケージは、基本的なデータ型と文字列の変換に役立ちます。この例では、文字列 "12345" を整数に変換し、5678を加算しています。

7. sort: スライスのソート

コード例

package main

import (
    "fmt"
    "sort"
)

func main() {
    values := []int{42, 7, 12, 3, 9}
    sort.Ints(values)
    fmt.Println(values)
}

出力結果

[3 7 9 12 42]

解説

sort パッケージは、スライスの要素をソートするための関数を提供します。この例では、整数のスライスを昇順にソートしています。

7. bytes: バイト操作

コード例

package main

import (
    "bytes"
    "fmt"
)

func main() {
    buffer := bytes.NewBufferString("Go is awesome!")
    fmt.Println(buffer.String())
}

出力結果

Go is awesome!

解説

bytes パッケージは、バイトのスライスを効率的に操作するための関数やバッファを提供します。上記の例では、バッファに文字列を追加し、その内容を出力しています。

8. math: 数学関数

コード例

package main

import (
    "fmt"
    "math"
)

func main() {
    result := math.Sqrt(25)
    fmt.Println(result)
}

出力結果

5

解説

math パッケージは、基本的な数学関数や定数を提供します。この例では、25の平方根を計算しています。

9. flag: コマンドラインオプションの解析

コード例

package main

import (
    "flag"
    "fmt"
)

func main() {
    name := flag.String("name", "Go", "Your name")
    flag.Parse()
    fmt.Println("Hello,", *name)
}

実行時に ./your-program -name=Taro とすると…

出力結果

Hello, Taro

解説

flag パッケージは、コマンドラインオプションを簡単に解析するための関数を提供します。この例では、コマンドラインから name オプションを取得し、その値を出力しています。

まとめ

Go言語の標準パッケージは、日常的なプログラミング作業を簡単にし、開発の効率を向上させる強力なツールです。今回紹介したものは、その一部に過ぎません。標準パッケージのドキュメントをチェックして、更に多くのをパッケージを利用してみてください!