美文网首页
golang-101-hacks(7)——简短变量声明

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

作者: _羊羽_ | 来源:发表于2019-05-27 22:27 被阅读0次

注:本文是对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.

相关文章

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

    注:本文是对golang-101-hacks中文翻译。在GO语言中简短变量声明是一种非常方便的“声明变量”方式sh...

  • 2. go 的基本语法

    1. go 变量声明: 标准声明: 批量声明: 简短声明(声明并赋值): 简短模式存在以下局限:①需要显式初始化数...

  • Go学习日志:基本概念及通道

    变量声明 简短声明方法,使用:=,在函数内部使用,外部无法通过。 全局变量 使用var来定义。 函数调用 func...

  • Go语言笔记 | 04-短变量声明

    Go 语言中提供了一种简短的变量声明方式 变量名:= 表达式 用来声明和初始化函数内部的局部变量,变量的类型根据表...

  • 数据结构(一)指针、结构与链表(待更新)

    一.指针 int *Ptr; //声明一个整型指针变量 int y=7 ; //声明一个整型变量并赋值为7...

  • CSS - 变量教程

    一、变量的声明 声明变量的时候,变量名前面要加两根连词线(--)。 body { --foo: #7F583F;...

  • 08:变量(模块与函数之间的变量)

    python学习day_7: 1、变量之全局变量 定义:声明在函数外部的变量:全局变量从声明的地方开始-当前文件中...

  • CSS 之变量教程

    一、变量的声明 声明变量的时候,变量名前面要加两根连词线(--)。区分大小写.body {--foo: #7F58...

  • JavaScript 大纲

    js 语法基础 JavaScript 介绍 js 输出 注释 变量,变量声明提升,全局变量,常量 7 大数据类型 ...

  • CSS变量

    变量的声明 声明变量的时候,变量名前面要加两根连词线(--),看下图: 也就是说,把颜色#7F583F用变量--f...

网友评论

      本文标题:golang-101-hacks(7)——简短变量声明

      本文链接:https://www.haomeiwen.com/subject/mmshtctx.html