LoginSignup
1
0

Go言語の標準ライブラリは、プログラムを作成する際に一般的に必要となる多くの機能を提供します。これには、基本的なデータ型の操作、ファイル入出力、ネットワーク通信、データのエンコーディングとデコーディング、並行プログラミング、暗号化、データベース操作などが含まれます。

fmtパッケージ

fmtパッケージは、文字列の書式設定と出力を提供します。PrintfやPrintlnなどの関数を含みます。

package main

import "fmt"

func main() {
    name := "Alice"
    age := 25
    fmt.Printf("名前:%s, 年齢:%d\n", name, age)
}

net/httpパッケージ

net/httpパッケージは、HTTPクライアントとサーバの実装を提供します。Webアプリケーションの作成や、Web APIの呼び出しに使用します。

package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprint(w, "Hello, World!")
    })

    log.Fatal(http.ListenAndServe(":8080", nil))
}

osパッケージ

osパッケージは、オペレーティングシステムとのインタラクションを提供します。これには、ファイル操作、環境変数の取得、コマンドライン引数の取得などが含まれます。

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("data.txt")
    if err != nil {
        fmt.Println("ファイルを開くのに失敗しました:", err)
        return
    }
    defer file.Close()

    // ファイルの読み込みなどの処理
}

encoding/jsonパッケージ

encoding/jsonパッケージは、JSON形式のデータのエンコーディング(Goのデータ構造からJSONに変換)とデコーディング(JSONからGoのデータ構造に変換)を提供します。

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    jsonStr := `{"name":"Alice","age":25}`

    var person Person
    if err := json.Unmarshal([]byte(jsonStr), &person); err != nil {
        fmt.Println("JSONのデコードに失敗しました:", err)
        return
    }

    fmt.Printf("名前:%s, 年齢:%d\n", person.Name, person.Age)
}

io/ioutilパッケージ

io/ioutilパッケージは、ファイルの読み書きや一時ファイルの作成など、便利なI/Oユーティリティを提供します。

package main

import (
    "fmt"
    "io/ioutil"
)

func main() {
    data := []byte("Hello, World!")

    if err := ioutil.WriteFile("output.txt", data, 0644); err != nil {
        fmt.Println("ファイルの書き込みに失敗しました:", err)
        return
    }

    // ファイルの読み込みなどの処理
}

database/sqlパッケージ

database/sqlパッケージは、データベースとのインタラクションを提供します。データベース接続の管理やSQLクエリの実行などを含みます。

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database")
    if err != nil {
        fmt.Println("データベースに接続できませんでした:", err)
        return
    }
    defer db.Close()

    // SQLクエリの実行などの処理
}

syncパッケージ

syncパッケージは、並行プログラミングのためのプリミティブ(例えば、mutexやWaitGroup)を提供します。

package main

import (
    "fmt"
    "sync"
)

func main() {
    var wg sync.WaitGroup
    wg.Add(2)

    go func() {
        defer wg.Done()
        // ゴルーチン1の処理
    }()

    go func() {
        defer wg.Done()
        // ゴルーチン2の処理
    }()

    wg.Wait()
    fmt.Println("並行処理が完了しました")
}

strconvパッケージ

strconvパッケージは、文字列と他のデータ型(例えば、数値)との間の変換を提供します。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    str := "123"

    num, err := strconv.Atoi(str)
    if err != nil {
        fmt.Println("文字列を数値に変換できませんでした:", err)
        return
    }

    fmt.Printf("数値:%d\n", num)
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0