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 .


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

查看所有标签

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

Web Development Recipes

Web Development Recipes

Brian P. Hogan、Chris Warren、Mike Weber、Chris Johnson、Aaron Godin / Pragmatic Bookshelf / 2012-1-22 / USD 35.00

You'll see a full spectrum of cutting-edge web development techniques, from UI and eye candy recipes to solutions for data analysis, testing, and web hosting. Make buttons and content stand out with s......一起来看看 《Web Development Recipes》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具