前端之家收集整理的这篇文章主要介绍了
golang 快捷付值需要注意的地方,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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、在函数内的快捷赋值(:=),我们都会认为是创建新变量;然而,当是给多个变量同时赋值时,只需要一个变量未定义即可。比如:
这样是允许的 然而,这样却是不允许的:
2、开篇的例子为什么 输出是那样的呢?原来,name是 全局变量,在main中,使用快捷赋值时,它同时创建了name和err,这时候的name是main中的局部变量,而非 全局变量的name。 |