Golang正在执行某些代码,否则它不会在(日志检查)

  • 本文关键字:日志 执行 代码 Golang go
  • 更新时间 :
  • 英文 :


这个区域的所有日志都不打印(显示里面没有运行)。不管怎样,最后一行是执行的。我很沮丧,很伤心,完全不知道。如果你有什么想法,非常感谢。

if !reflect.DeepEqual(MachineNow.TCP_machine.Two_D_Dta_Old, twoD_new) {
//the situation should not be executed
log.Println("new to old updated")   //all log is not printing (O)
fmt.Println("new", twoD_new[0][0])
fmt.Println("old", MachineNow.TCP_machine.Two_D_Dta_Old[0][0])
MachineNow.TCP_machine.Two_D_Dta_Old = twoD_new  //this line is doing anyway (X)

}
  • 您检查过您的" log "输出和级别了吗?也许您将输出级别设置为高于"Println",因此它被简单地忽略。
  • 试着使用debug来知道它是否运行到这个代码块或只是你的假设。
  • 还有一件事要检查的是:如果你通过单元测试运行它,你需要添加"-v"标志来显示输出。

解决方案:将对象转换为JSON格式并分配给对象。我不知道为什么,但这是避免执行这一行的唯一方法。我以为这只是一个错误,现在看来,这行确实执行不明原因。它运行的是Windows x64。

new_json, _ := json.Marshal(twoD_new)
_ = json.Unmarshal([]byte(new_json), &MachineNow.TCP_machine.Two_D_Dta_Old)

最新更新