Go言語の学習中間レポート

Go言語の学習中間レポート

私はGo言語を学び始めてまだ一ヶ月経っていませんが、学習を通してさまざまな発見や面白い挑戦がありました。C言語やPythonの経験があるおかげで、比較してGo言語の特徴を気づくことも多く、それらをまとめたので、ここで共有したいと思います。


Go言語の第一印象

Go言語に触れてまず感じたのは、その簡潔さです。代入が簡単な文法で実現でき、型の付加も自動で行われるので、コードの読みやすさが抜群です。特に、:=の短縮記法には大変感鋭しました。

x := 42       // x は int 型に推論される
y := 3.14     // y は float64 型に推論される
z := "Hello"  // z は string 型に推論される
fmt.Println(x, y, z)

実行結果:

42 3.14 Hello

:=は関数内でしか使えませんが、実際にはこの制限がコードの見通しを促していると感じました。


型の調査方法

C言語やPythonを使ってきた私にとって、型の解析は自然な流れでした。Go言語では reflect.TypeOf%Tを使うことで、すぐに型を確認できます。

package main

import (
    "fmt"
    "reflect"
)

func main() {
    x := 42
    fmt.Println(reflect.TypeOf(x)) // 出力: int
    fmt.Printf("Type of x: %T\n", x) // 出力: Type of x: int
}

実行結果:

int
Type of x: int

これにより、変数の型を読者に明確に示すことができます。


golangci-lintの有用性

コードの質を向上させるために、golangci-lintの使用は必須でした。特に、使われていない値に関する警告は、Go言語の比較的固最的な言語設計を気づかせてくれました。

例:

package main

import "fmt"

func main() {
    x := 10
    fmt.Println(x)
    x = 30 // この値が使われていない
}

警告が出力されます:

warning: x assigned but not used

上記のコードを修正した例はこちら:

package main

import "fmt"

func main() {
    x := 10
    fmt.Println(x)
    x = 30
    fmt.Println(x) // 値を使用して警告を解消
}

実行結果:

10
30

また、値を使用せずに警告を消す方法として、ブランクアイデンティファ _ を使用することができます。

package main

func main() {
    x := 10
    _ = x // 値を使用せずに警告解消
}

実行結果:

警告は出力されません。


結論

Go言語の学習は、私にとって非常にためになるものです。C言語やPythonの知識を活かしながら、Go言語の特徴を気づき、学習を深めることができました。

これからもさまざまな試行錬識を続け、Go言語を使ったプロジェクトの開発を目指していきたいと思います。

学習の過程では、以下の書籍を参考にしました。特に『初めてのGo言語』は具体性があり、その基礎を付けるのに有用でした。

書名:初めてのGo言語

副題:他言語プログラマーのためのイディオマティックGo実践ガイド

Amazonで本を見る

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です