a := "ALL"
b := "not all"
if (a == "ALL") != (b == "ALL") {
fmt.Printf("why not falling into this case?\n")
}
Burada yazdığım bir Go kodu parçası, a ve b "ALL" olmak için tam olarak bir tane varsa, bir şey yazdırmak için yazdım. Ama fmt.Printf neden tetiklenmez?Bir karşılaştırma doğruya eşittir, ancak sanki koşulu gibi koydum, neden doğru olarak değerlendirilmiyor?
şu does Ancak baskı:
c := (a == "ALL") != (b == "ALL")
if c {
fmt.Printf("if assign to c, do fall in here\n")
}
Ama iki parça arasındaki fark nedir?
Ayrıca yukarıdaki kodu oyun alanına da yapıştırdım: http://play.golang.org/p/e5tNai_d20 Herkesin açıklaması büyük takdir edilecektir! Şimdiden teşekkürler.
için düzeltme Neden sadece bir b karşılaştırmak istiyorsunuz içeriyor? – shieldstroy
Bu çalışma: 'if ((a ==" ALL ")! = (B ==" ALL ")) == true {'. Bu garip, bunu açıklayan şartlarda hiçbir şey göremiyorum. –
ALL olmayan tüm dizeleri aynı şekilde ele almak istiyorum. Örneğin. a == "bazı dize", b == "başka bir dize", " – cnkid