golang 快捷付值需要注意的地方
2016-03-18 16:51
423 查看
http://bbs.studygolang.com/thread-29-1-1.html
看这段代码的输出是: package main import "fmt" var name string func main() { name, err := getString() if err != nil { panic(err) } fmt.Println("first print:" + name) printName() } func printName() { fmt.Println("second print:" + name) } func getString() (string, error) { return "studygolang", nil } 复制代码 可以在这里直接运行查看结果:http://play.golang.org/p/BUWTcEwsBL 如果你的结果和运行结果不一样,这个小知识可以帮助你哦。 1、在函数内的快捷赋值(:=),我们都会认为是创建新变量;然而,当是给多个变量同时赋值时,只需要一个变量未定义即可。比如: var i int i, n := 2, 5 复制代码 这样是允许的 然而,这样却是不允许的: var i int var n int i, n := 2, 5 复制代码 2、开篇的例子为什么输出是那样的呢?原来,name是全局变量,在main中,使用快捷赋值时,它同时创建了name和err,这时候的name是main中的局部变量,而非全局变量的name。 |
相关文章推荐
- Mongo 备份 还原
- Django~urls.py--->views.py
- Django~Models2
- What we learned in Seoul with AlphaGo
- Django模板简介
- 九度题目1440Goldbach's Conjecture
- go test命令参数问题
- go源码阅读笔记(math.3)
- Go计算运行的时间
- 【原创】k8s源码分析------第三方库go-restful分析
- ubuntu中安装mongo
- Django settings — Django 1.6 documentation
- Google API V3自定义图标和信息框
- Standalone Django scripts
- Django系列:(1)PyCharm下创建并运行我们的第一个Django工程
- Django 开发可以停了
- go语言的string和slice是值拷贝吗?
- 推荐一个go语言笔记
- DFP简单粗暴的笔记(About Google Native DFP)
- Django基于类的编辑视图和Mixins