Go言語学習も11日目に入りました!
昨日に引き続き、標準パッケージ(fmt, os, strconv)を使って実用的な処理を作っていきます。
これまでに学んだ構文+ライブラリを組み合わせて、
「ユーザー入力 → 型変換 → 条件処理」 という、ちょっと現実味のある流れにチャレンジ!
目標:年齢をコマンドライン引数から受け取り、メッセージを表示
使うパッケージ:
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言語でも「自分でちょっとしたツール作れそう!」って気持ちになってきて楽しくなりますね!!!
今日はこの辺で。