duanke2503 2015-08-30 09:11
浏览 18

比较等于true,但是当我将其视为条件时,为什么不将其评估为true?

a := "ALL"
b := "not all"

if (a == "ALL") != (b == "ALL") {
    fmt.Printf("why not falling into this case?
")
}

Here is a piece of Go code I wrote, to print something if a and b have exactly one to be "ALL". But why the fmt.Printf is not triggered?

However the following does print:

c := (a == "ALL") != (b == "ALL")
if c {
    fmt.Printf("if assign to c, do fall in here
")
}

But what's the difference between the two pieces?

I also pasted the above code in the go playground: http://play.golang.org/p/e5tNai_d20 Anyone's explanation will be greatly appreciated! Thanks in advance.

  • 写回答

1条回答 默认 最新

  • dpgu5074 2015-08-30 11:36
    关注

    It is a go 1.5 bug, and looks similiar to this one : https://github.com/golang/go/issues/12226

    It is fixed on the master branch, so you can either downgrade to 1.4.2 and wait for the next release, or compile the tip of master.

    Edit : Go1.5.1 has been released and it contains the fix to this issue

    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?