a := "ALL"
b := "not all"
if (a == "ALL") != (b == "ALL") {
fmt.Printf("why not falling into this case?\n")
}
Oto fragment kodu Go, który napisałem, aby wydrukować coś, jeśli aib mają dokładnie jeden, aby być "ALL". Ale dlaczego fmt.Printf nie jest uruchamiany?porównanie jest równe true, ale kiedy umieszczam je jako warunek, dlaczego nie jest on oceniany jako prawdziwy?
Jednak dodaje robi print:
c := (a == "ALL") != (b == "ALL")
if c {
fmt.Printf("if assign to c, do fall in here\n")
}
Ale jaka jest różnica między tymi dwoma kawałkami?
Również wkleiłem powyższy kod na plac zabaw: http://play.golang.org/p/e5tNai_d20 Wyjaśnienia każdego będą bardzo mile widziane! Z góry dziękuję.
Dlaczego nie porównasz a do b? – shieldstroy
Działa to: 'if ((a ==" ALL ")! = (B ==" ALL ")) == true {. To dziwne, nie widzę niczego w opisie wyjaśniającym to. –
Chcę traktować wszystkie nie-ALL ciąg jako takie same. na przykład nic nie drukuj, jeśli == "jakiś ciąg", b == "jakiś inny ciąg" – cnkid