<Go lang中的运算符

时间:2018-12-29 11:00:56

标签: go

我是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 

谢谢!

1 个答案:

答案 0 :(得分:5)

因为<与“等于”不同。尝试将您的运算符更改为<=。仅当您的值小于或等于0时才会触发