私はGo
と私のつま先を浸漬していますし、YまたはNが入力されているかどうかを確認するためにいくつかのコードを書かれている:私は&タイプy
(と入力し、Enterキーを押します)このコードを実行すると私のgo lang stringの比較が期待どおりに動作しないのはなぜですか?
reader := bufio.NewReader(os.Stdin)
fmt.Print("(y/n): ")
text, _ := reader.ReadString('\n')
text = strings.ToLower(text)
if strings.Compare(text, "y") == 0 {
fmt.Println("True")
} else {
fmt.Println("Else")
}
は私が期待しますTrue
を参照してくださいが、私はElse
を得る - 誰もがなぜ見ることができますか?コメントは、上記、ReadString()
文字列の一部として区切り文字を返す言うよう
reader := bufio.NewReader(os.Stdin)
fmt.Print("(y/n): ")
text, _ := reader.ReadString('\n')
text = strings.ToLower(text[0:len(text)-1])
if strings.Compare(text, "y") == 0 {
fmt.Println("True")
} else {
fmt.Println("Else")
}
:
["ReadStringは入力のdelimが最初に出現するまで読み取り、区切り文字までのデータを含む文字列を返す"](https://godoc.org/bufio#Reader.ReadString) –