Go言語学習11日目:入力を受け取って型変換してみた!

Go言語学習も11日目に入りました!
昨日に引き続き、標準パッケージ(fmt, os, strconv)を使って実用的な処理を作っていきます。

kunio-ud-all.com

これまでに学んだ構文+ライブラリを組み合わせて、
「ユーザー入力 → 型変換 → 条件処理」 という、ちょっと現実味のある流れにチャレンジ!


目標:年齢をコマンドライン引数から受け取り、メッセージを表示

使うパッケージ:
  • fmt:出力に使用
  • os:コマンドライン引数を取得
  • strconv:文字列→数値への変換

実装してみたコード

package main

import (
    "fmt"
    "os"
    "strconv"
)

func main() {
    // 引数チェック
    if len(os.Args) < 2 {
        fmt.Println("年齢を引数として入力してください")
        return
    }

    ageStr := os.Args[1]

    // 文字列→整数に変換
    age, err := strconv.Atoi(ageStr)
    if err != nil {
        fmt.Println("エラー: 数値に変換できませんでした")
        return
    }

    // 条件分岐でメッセージ
    if age < 20 {
        fmt.Printf("あなたは未成年(%d歳)ですね!\n", age)
    } else {
        fmt.Printf("あなたは成人(%d歳)です!\n", age)
    }
}

実行例
$ go run main.go 18
→ あなたは未成年(18歳)ですね!

$ go run main.go 25
→ あなたは成人(25歳)です!

$ go run main.go ABC
→ エラー: 数値に変換できませんでした

今日の学びポイント

標準パッケージを使ってできることが広がった!

  • os.Args → 実行時の引数を受け取れる
  • strconv.Atoi → 文字列を安全に数値へ変換
  • if err != nil → 変換エラーを丁寧に処理
  • fmt.Printf → 見やすい出力

最初は os.Args の中身が配列になってるとか、Atoi の戻り値が (int, error) だったりしてちょっと混乱するけど…
実際に動かしてみると、「なるほど、こういうときに使うのか!」って感覚が掴めてきました。。

このへんが身についてくると、今までPythonでやってたけど、Go言語でも「自分でちょっとしたツール作れそう!」って気持ちになってきて楽しくなりますね!!!

今日はこの辺で。

(この記事は広告を含みます)