2015-12-20 17 views
24

Go dizgesi karşılaştırması söz konusu olduğunda 'doğru' sonuç üretemiyorum. Sorunu açıklamaya aşağıdaki yazmış ve çıkış bir ekran görüntüsüTelleri GoLang'da nasıl karşılaştırırım?

// 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) 

} 

example

+2

:

Sen girişten gelen boşluklara sondaki kaldırmak için strings.TrimRight işlevini kullanabilirsiniz – user2202911

cevap

45

== git dizeleri karşılaştırmak için doğru operatörüdür ekli. Ancak, reader.ReadString ile STDIN'den okunan dizeleri (Eğer yakından bakarsanız, sizin örnek çıktıda ekstra satır sonu göreceksiniz) "a" fakat "a\n" içermez. Görüntüyü sabitleme için teşekkürler @helmbert

if strings.TrimRight(input, "\n") == "a" { 
    // ... 
} 
İlgili konular