美文网首页
go语言陷阱之二:Unused Variables

go语言陷阱之二:Unused Variables

作者: wu_sphinx | 来源:发表于2015-05-19 00:18 被阅读769次

    继续来控go语言的陷阱,今天来一发go语言中未使用变量的陷阱,不使用就扔掉嘛,go语言发明人如是说...
    先来看坑:

    package main
    
    var gvar int //not an error
    
    func main() {
        var one int   //error, unused variable
        two := 2      //error, unused variable
        var three int //error, even though it's assigned 3 on the next line
        three = 3
    }
        运行结果
    ./hello.go:6: one declared and not used
    ./hello.go:7: two declared and not used
    ./hello.go:8: three declared and not used
    

    好吧,one、two、three这三个变量都有问题。one只是作了声明,two赋值,three先声明后赋值,本质上这三个变量都没有被使用。
    来看正确的写法:

    package main
    
    import "fmt"
    package main
    
    import "fmt"
    
    func main() {
        var one int
        _ = one
        fmt.Println(one)
        two := 2
        fmt.Println(two)
    
        var three int
        three = 3
        one = three
    
        var four int
        four = four
    }
    运行结果
    0
    2
    

    对于未赋值的整型变量one,go默认赋值为0。由正确的写法可以看出,在go中,对于使用的定义,是变量需要出现在赋值号的右边,变量才被认为使用了。go的这种设计很合理,运行程序的过程中,减少了一些不必要的判断与赋值,相对一python而言,容错性变差,仅这一点而言,性能会更好。

    相关文章

      网友评论

          本文标题:go语言陷阱之二:Unused Variables

          本文链接:https://www.haomeiwen.com/subject/suhlqttx.html