golang-101-hacks(7)——简短变量声明

栏目: Go · 发布时间: 7年前

内容简介:注:本文是对在GO语言中简短变量声明是一种非常方便的“声明变量”方式short variable declaration is a very convenient manner of "declaring variable" in

注:本文是对 golang-101-hacks 中文翻译。

在 GO 语言中简短变量声明是一种非常方便的“声明变量”方式

short variable declaration is a very convenient manner of "declaring variable" in Go :

i := 10

以下是简写方式(注意变量没有标明类型):

It is shorthand of following (Please notice there is no type):

var i = 10

Go编译器会根据变量的值来推断变量的类型。这将带来极大方便,但另一方面,也带来了一些陷阱,应该注意:

The Go compiler will infer the type according to the value of variable. It is a very handy feature, but on the other side of coin, it also brings some pitfalls which you should pay attention to:

(1)简短变量声明格式只能用于函数体内

(1) This format can only be used in functions:

package main

i := 10

func main() {
    fmt.Println(i)
}

编译体会提示如下错误

syntax error: non-declaration statement outside function body

(2)必须声明 至少一个新变量 :

package main

import "fmt"

func main() {
    var i = 1

    i, err := 2, true

    fmt.Println(i, err)
}

在 i, err:= 2, false 语句中,只有' err '是一个新声明的变量, var 实际上是在 vari = 1 中声明的。

简短变量声明可以隐藏全局变量声明,它可能不是您想要的,这让您大吃一惊:

package main

import "fmt"

var i = 1

func main() {

    i, err := 2, true

    fmt.Println(i, err)
}

' i, err:= 2, true '实际上声明了一个 new local i ,这使得 global i 在' main '函数中没有被访问。使用全局变量,不使用局部变量,正确的解决方法如下:

package main

import "fmt"

var i int

func main() {

    var err bool

    i, err = 2, true

    fmt.Println(i, err)
}

参考:

Short variable declarations .


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

《生活大爆炸》之科学揭秘

《生活大爆炸》之科学揭秘

乔治·毕姆 / 韩准、徐漪、江业华、叶夜 / 世界图书出版公司 / 2012-12 / 49.00元

《 之科学揭秘:GEEK探索频道》对流行美剧《生活大爆炸》进行“深度解密”,重点在解读剧中涉及的流行文化及科学元素。正如我们所知,《生活大爆炸》是一部“技术含量很高”的肥皂剧。不光是普通观众,科学家也爱《生活大爆炸》。《 之科学揭秘:GEEK探索频道》中,科学家详尽为你解释了电视剧中出现的科学道理和典故。包括谢尔顿的高深弦理论、霍华德的花生过敏是怎么回事、如果你和谢尔顿的妈妈有同样的信仰该如何看待......一起来看看 《《生活大爆炸》之科学揭秘》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具