go语言陷阱之六:Accidental Variable Shadowing

先看有问题的代码:

package main

import "fmt"

func main() {
    x := 1
    fmt.Println(x) //prints 1
    {
        fmt.Println(x) //prints 1
        x := 2
        fmt.Println(x) //prints 2
    }
    fmt.Println(x) //prints 1 (bad if you need 2)
}

短变量声明方式,代码运行也没有问题,但这样写容易引起问题,变量名重复使用,容易引起歧意。
其它这也是见仁见智,代码规范的问题。个人觉得只要使用得当,也没有问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容