Go言語学習もついに4日目!
今日は新しい概念に進むのではなく、これまでに学んだことの復習デーです。
参考にしているのはもちろん、Go Tour
- 関数
- 条件分岐(if/else, switch)
- ループ(for)
- スライスやマップ、構造体(struct)など
これらをしっかり身につけるために、簡単な練習問題にチャレンジしてみました!
練習①:スライスの合計を計算する関数を作ってみた
func sum(numbers []int) int { total := 0 for _, n := range numbers { total += n } return total } func main() { nums := []int{1, 2, 3, 4, 5} result := sum(nums) fmt.Println("合計:", result) // 合計: 15 }
文系SEでも、このへんは「ExcelのSUM関数を手動でやってる感覚」で理解しやすいかも。。
練習②:3の倍数かどうかをチェックする関数
func checkMultiple(n int) string { if n%3 == 0 { return fmt.Sprintf("%d は 3 の倍数です", n) } else { return fmt.Sprintf("%d は 3 の倍数ではありません", n) } } func main() { fmt.Println(checkMultiple(9)) // 3の倍数 fmt.Println(checkMultiple(10)) // そうでない }
こういう「条件分岐で処理を切り分けるパターン」は実務まぁ使いますよね。。
最初は if
が複雑に見えるけど、実際に書いてみると案外スッと理解できます。
if だらけになったり、、、ゲーム系のプログラムはifだらけのイメージ。。。
練習③:1からnまでの合計を返す関数(for文の復習)
func calcSum(n int) int { total := 0 for i := 1; i <= n; i++ { total += i } return total } func main() { fmt.Println(calcSum(10)) // 出力: 55 }
練習④:Mapの中身をすべて表示してみる
func printAges() { ages := map[string]int{ "たろう": 30, "はなこ": 25, "じろう": 28, } for name, age := range ages { fmt.Printf("%s さんは %d 歳です\n", name, age) } } func main() { printAges() }
Mapとrange
の組み合わせもバッチリですね!
キーと値の両方を取り出せるのが嬉しい。。
今日のまとめ
Go言語4日目の復習ポイント
まだまだ、慣れないです。。