golangで対話型のCLIツールを作成する。
コマンドを叩くと入力待ちの状態となり、
適切な値を入力するまで無限ループする。
必要なパッケージ
- bufio
- os
サンプルコード
package main
import (
"fmt"
"bufio"
"os"
)
func main() {
fmt.Println("stop と入力して下さい。")
scanner := bufio.NewScanner(os.Stdin)
for scanner.Scan() {
if scanner.Text() == "stop" {
break
}
fmt.Println("stop と入力されるまでループします。")
}
fmt.Println("終了します。")
}
// このメソッドで入力待ちとなる
scanner.Scan()
// 正常に入力値を受け取ると true を返す
val := scanner.Scan()
fmt.Println(val)
// => true
// 入力された値はこのメソッドで呼び出せる
scanner.Text()