我是Go lang的新生,但这对我来说没有意义:
package main
import (
"fmt"
"log"
)
var rectLen, rectWidth float64 = 0, 0
func init() {
fmt.Println("init is initialized")
if rectLen < 0 {
log.Fatal("rectLen smaller than 0")
}
if rectWidth < 0 {
log.Fatal("rectWidht smaller than 0")
}
}
func main() {
fmt.Println("Main is initialized")
fmt.Println(rectLen, rectWidth )
}
这将打印出来:
init is initialized
Main is initialized
0 0
当我的init函数“保护”我的rectLen,rectWidth变量应严格大于0时,为什么输出0和0? 如果将值更改为小于0的值,则可以正常工作,我得到:
init is initialized
2009/11/10 23:00:00 rectLen smaller than 0
谢谢!
答案 0 :(得分:5)
因为<
与“等于”不同。尝试将您的运算符更改为<=
。仅当您的值小于或等于0时才会触发