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言語』は具体性があり、その基礎を付けるのに有用でした。
コメントを残す