見出し画像

プログラミング言語「Go(Golang)」についての使い方


Go言語とは?

Go言語(Golang)は、Googleによって開発されたオープンソースのプログラミング言語です。

2009年にリリースされ、以下の特徴を持っています。

❶高いパフォーマンス
C言語C++のようなコンパイル型言語でありながら、簡潔で読みやすいコードを記述できます。
❷簡潔さと効率性
シンプルな構文を採用し、冗長なコードを減らす工夫がされています。
❸並行処理のサポート
軽量スレッドである「goroutine」と、データを安全に共有するための「チャネル」を備えています。
❹標準ライブラリの充実
ネットワーク、ファイル操作、暗号化など、多くの機能を標準ライブラリで提供しています。
❺高いクロスプラットフォーム性
Windows、macOS、Linuxなど、さまざまなプラットフォームで動作します。

Goは、Webサーバーマイクロサービスクラウドネイティブアプリケーションコマンドラインツールなど、幅広い分野で利用されています。


Go言語の使い方

①インストール

Goを使用するには、公式サイトからGoをインストールします。
以下の手順で進めます。

❶Go公式サイトにアクセス。

❷自分のOSに対応するインストーラーをダウンロード。
❸インストール後、goコマンドが使用可能であることを確認します。

go version

上記コマンドを実行して、Goのバージョンが表示されればインストール成功です。


②基本的な構文

Go言語のプログラムは、パッケージ(package)から始まります。
以下は、簡単な「Hello, World」の例です。

package main

import "fmt"

func main() {
    fmt.Println("Hello, World")
}

解説
package main
Goプログラムのエントリーポイント(実行可能なパッケージ)を表します。

import "fmt"
標準ライブラリのfmtをインポートして、文字列を出力します。

func main()
Goプログラムの実行が始まる関数です。


③プログラムの実行

❶プログラムをmain.goという名前で保存します。
❷以下のコマンドで実行します。

go run main.go

❸実行結果
Hello, World


Go言語の特徴的な機能とサンプルコード


①変数の宣言

Goでは、静的型付けを採用していますが、型推論もサポートしています。

package main

import "fmt"

func main() {
    // 型を明示して変数を宣言
    var x int = 10
    var y string = "Go言語"
    
    // 型推論を使用
    z := 3.14

    fmt.Println(x, y, z)
}


②条件分岐

Goの条件分岐は、if文を使用します。

package main

import "fmt"

func main() {
    x := 10

    if x > 5 {
        fmt.Println("xは5より大きい")
    } else {
        fmt.Println("xは5以下")
    }
}

③ループ処理

Goでは、forのみがループ構文として使われます。

package main

import "fmt"

func main() {
    for i := 0; i < 5; i++ {
        fmt.Println(i)
    }
}

④関数

関数は以下のように定義します。

package main

import "fmt"

// 関数の定義
func add(a int, b int) int {
    return a + b
}

func main() {
    result := add(3, 5)
    fmt.Println("3 + 5 =", result)
}

⑤ goroutine(並行処理)

Goの並行処理の基本であるgoroutineの例です。

package main

import (
    "fmt"
    "time"
)

func say(message string) {
    for i := 0; i < 5; i++ {
        fmt.Println(message)
        time.Sleep(100 * time.Millisecond)
    }
}

func main() {
    go say("goroutine")
    say("main function")
}

注意点


①エラー処理

Goでは例外処理が存在せず、エラーは値として返されます。
そのため、エラー処理を忘れるとバグが発生しやすくなります。

package main

import (
    "fmt"
    "os"
)

func main() {
    file, err := os.Open("nonexistent.txt")
    if err != nil {
        fmt.Println("エラー:", err)
        return
    }
    defer file.Close()
}

②メモリ管理

Goはガベージコレクション(GC)を採用しているため、メモリ管理は比較的簡単です。しかし、GCのパフォーマンスに影響を与える大きなデータ構造の使用には注意が必要です。


③静的型付け

型を明確に記述しなければならない場面があるため、柔軟性は動的型付け言語より低いです。


実践例: Webサーバーの構築

Goの標準ライブラリを使用して簡単なWebサーバーを作成できます。

package main

import (
    "fmt"
    "net/http"
)

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

func main() {
    http.HandleFunc("/", handler)
    fmt.Println("サーバー起動中: http://localhost:8080")
    http.ListenAndServe(":8080", nil)
}

実行手順
❶上記コードを保存して、go runで実行します。
❷ブラウザでhttp://localhost:8080にアクセスすると、Hello, Go Web Server!と表示されます。


まとめ

Go言語は、シンプルな構文、高性能、並行処理機能により、モダンなアプリケーション開発に最適な言語です。

注意点としては、エラー処理の徹底や大規模データ構造の扱いに気を付ける必要があります。

まずは基本的な構文から学び、Webサーバーの構築や並行処理の活用を試してみると、Go言語の強力さを実感できるでしょう

いいなと思ったら応援しよう!