2015-12-20 4 views
24

जब मैं स्ट्रिंग तुलना की बात करता हूं तो मैं 'सत्य' परिणाम उत्पन्न करने में असमर्थ हूं। मैं इस मुद्दे को समझाने के लिए निम्नलिखित लिखा था और उत्पादन का एक स्क्रीनशॉटमैं गोलांग में तारों की तुलना कैसे करूं?

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

धन्यवाद @helmbert:

आप अपने इनपुट से व्हाइटस्पेस अनुगामी दूर करने के लिए strings.TrimRight समारोह का उपयोग कर सकते – user2202911

उत्तर

45

== जाओ में तार की तुलना करने के सही ऑपरेटर है संलग्न। हालांकि, reader.ReadString के साथ एसटीडीआईएन से पढ़े गए तारों में "a" नहीं है, लेकिन "a\n" (यदि आप बारीकी से देखते हैं, तो आप अपने उदाहरण आउटपुट में अतिरिक्त लाइन ब्रेक देखेंगे)। छवि ठीक करने के लिए

if strings.TrimRight(input, "\n") == "a" { 
    // ... 
} 
संबंधित मुद्दे