2011-11-16 19 views
2

爲什麼這不起作用,或者如何獲得多個輸入與fmt.Scanln多輸入(fmt.Scanln)

編輯:如果我插入多個然後一個單詞,然後我得到錯誤「掃描:預期換行」,我能做些什麼呢?

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) 

回答

2

您在同一範圍內多次重複聲明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 
+0

THX,但我得到了以下錯誤: 「main.go:1:未定義:錯誤」 –

+0

使用'VAR ERR os.Error'和導入包' 「OS」,而不是' 。最近一週,'os.Error'接口剛剛被重命名爲'error'。 – tux21b