go - 複数入力(fmt.Scanln)

go

これが機能しないのはなぜですか、またはfmt.Scanlnで複数の入力を取得する方法は?

編集:1つ以上の単語を挿入すると、「スキャン:期待される改行」というエラーが表示されます。これについて何ができますか?

    var username string
    print("Username: ")
    _, err := fmt.Scanln(&username)
    if err != nil {
            fmt.Println("Error: ", err)
    }

    var password string
    print("Password: ")
    _, err := fmt.Scanln(&password)
    if err != nil {
            fmt.Println("Error: ", err)
    }

    var status string
    print("Status: ")
    _, err := fmt.Scanln(&status)
    if err != nil {
            fmt.Println("Error: ", err)
    }

    fmt.Println(username, password, status)
答え
同じスコープ内でerr変数を複数回再宣言しています。
コンパイラエラーはそれを明らかにする必要があります。以下が機能します:

var err error
var username string

print("Username: ")
_, err = fmt.Scanln(&username)
if err != nil {
    fmt.Println("Error: ", err)
}

var password string
print("Password: ")
_, err = fmt.Scanln(&password)
if err != nil {
    fmt.Println("Error: ", err)
}

var status string
print("Status: ")
_, err = fmt.Scanln(&status)
if err != nil {
    fmt.Println("Error: ", err)
}

fmt.Println(username, password, status)
return
関連記事

udp - 分散サーバーのインスタンス間のデータブロードキャスト

networking - Goネットワークプログラミングライブラリ[終了]

xml - Goで非整列化を使用して名前空間のあるXML属性にアクセスする際の問題

go - GoとEchoを使い始められないようです

go - 配信不能トピックに転送して、Google Pub / Subの配信試行を制限するにはどうすればよいですか?

go - ハイパーレジャーファブリックのチェーンコードインスタンスからGoogle Cloud Storageにデータをアップロードできません

go - 歩哨メッセージをコンソールに出力する方法はありますか

go - メソッドタイプが関数タイプと一致するかどうかを確認する

go - すべてのゴルーチンを放出した後でゴルーチンを使用して順番に数字を出力する方法

mysql - 「?」を使用する場合、sql.DB.Queryは「期待される0引数」プレースホルダー