当前位置:   article > 正文

Golang 变量的声明和初始化_golang 变量未初始化 判断

golang 变量未初始化 判断

先来吐槽一下,Go 语言声明变量的方式太多太灵活了,以至于让人感觉到繁琐和冗余,甚至我都觉得违背了 Go 的设计哲学:“少即是多,只提供一种方法做事情”。。。

吐槽归吐槽,Go 语言变量定义的方式虽然比较多样,但是可以尝试进行简化,给它分个类。

我大致给分为两类:通过 = 定义和通过 := 定义。

= 定义

= 定义变量包括声明和赋值,需要通过关键字 var 来告诉编译器这是个变量。

变量声明,指定变量类型,并且初始化变量:

var name string = "Golang"
  • 1

变量声明,指定变量类型,未初始化变量为默认值(默认值根据数据类型确定):

var name string
  • 1

变量声明,指定变量类型,随后对变量进行初始化:

var name string
name = "Golang"
  • 1
  • 2

根据变量的值自动推导出变量的数据类型:

var name = "Golang"
  • 1

多变量声明,指定变量类型,并且初始化变量:

var (
    name string = "Golang"
    num int = 1
)
  • 1
  • 2
  • 3
  • 4

多变量声明,指定变量类型,未初始化变量为默认值(默认值根据数据类型确定):

var (
    name string
    num int
)
  • 1
  • 2
  • 3
  • 4

多变量声明,先指定变量类型,随后对变量进行初始化:

var (
    name string
    num int
)
name = "Golang"
num = 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

多变量声明,根据变量的值自动推导出变量的数据类型:

var (
    name = "Golang"
    num = 1
)
  • 1
  • 2
  • 3
  • 4

多变量声明,指定变量为同一类型,未初始化变量为默认值(默认值根据数据类型确定):

var name, num int
  • 1

多变量声明,指定变量为同一类型,并且初始化变量:

var name, num int = 1, 2
  • 1

多变量声明,指定变量为不同类型,并且初始化变量:

var name, num = "Golang", 1
  • 1

:= 定义

:= 定义变量包括声明和赋值,可以省略关键字 var 和变量类型,完全根据变量的值自动推导出变量的数据类型。

变量声明,根据变量的值自动推导出变量的数据类型,并且初始化:

name := "Golang"
  • 1

多变量声明,根据变量的值自动推导出变量的数据类型,并且初始化:

name, num := "Golang", 0
  • 1

简化变量声明规则:

  • 可以省略定义变量的关键字 var
  • 需要初始化变量,并且是自动推导数据类型。
  • 如果 := 左侧的变量是已经声明过的,编译会产生错误。
  • 使用 := 这种方式定义变量只能在函数内部使用。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/574321
推荐阅读
  

闽ICP备14008679号