美文网首页
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

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

  • go语言陷阱之三:Unused Imports

    继续go语言的陷阱,今天的坑是未使用的go语言包,先看错误代码: 导入了这三个包,但是都没有用到,在go语言中,这...

  • go语言陷阱之五:Redeclaring Variables U

    go语言陷阱第五弹! 又是这个短变量的声明出了问题,函数体只有一个变量one,重新定义报错。来看正确的写法:pac...

  • 关于go语言的几个陷阱

    原文 https://github.com/googege/blog/ 关于go语言的几个陷阱,以及我们应该注意的...

  • go语言——数据运算陷阱

    go语言规定不允许在整数型变量和浮点型变量之间进行任何数学运算。错误例子如下: 改正结果如下:

  • 潍坊go语言培训

    潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍坊go语言培训潍...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • golang 新手要注意的陷阱和常见错误

    Golang 新手要注意的陷阱和常见错误 Go是一门简单有趣的语言,但与其他语言类似,它会有一些技巧。。。这些技巧...

  • Go 陷阱之 for 循环迭代变量

    捕获迭代变量这是在学习 Go 程序设计 中遇到的一个比较重要的一个警告。这是个 Go 语言的词法作用域规则的陷阱。...

  • Go 语言学习技巧和编程思维

    Go 语言学习技巧和编程思维 一、了解 Go 语言 了解 Go 语言背景 学习 Go 语言,首先要了解 Go 语言...

网友评论

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

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