Goの文字列比較に関しては、「正しい」結果を生成することができません。問題を説明するために次のように書き、出力のスクリーンショットを添付しました。
// string comparison in Go
package main
import "fmt"
import "bufio"
import "os"
func main() {
var isLetterA bool
fmt.Println("Enter the letter a")
reader := bufio.NewReader(os.Stdin)
input, _ := reader.ReadString('\n')
if(input == "a") {
isLetterA = true
} else {
isLetterA = false
}
fmt.Println("You entered",input)
fmt.Println("Is it the letter a?",isLetterA)
}
ベストアンサー1
==
は、Go で文字列を比較するための正しい演算子です。ただし、を使用して STDIN から読み取った文字列にはreader.ReadString
が含まれません"a"
("a\n"
よく見ると、出力例に余分な改行があることがわかります)。
あなたはstrings.TrimRight
入力から末尾の空白を削除する関数:
if strings.TrimRight(input, "\n") == "a" {
// ...
}