赞
踩
先来吐槽一下,Go
语言声明变量的方式太多太灵活了,以至于让人感觉到繁琐和冗余,甚至我都觉得违背了 Go
的设计哲学:“少即是多,只提供一种方法做事情”。。。
吐槽归吐槽,Go
语言变量定义的方式虽然比较多样,但是可以尝试进行简化,给它分个类。
我大致给分为两类:通过 =
定义和通过 :=
定义。
=
定义=
定义变量包括声明和赋值,需要通过关键字 var
来告诉编译器这是个变量。
变量声明,指定变量类型,并且初始化变量:
var name string = "Golang"
变量声明,指定变量类型,未初始化变量为默认值(默认值根据数据类型确定):
var name string
变量声明,指定变量类型,随后对变量进行初始化:
var name string
name = "Golang"
根据变量的值自动推导出变量的数据类型:
var name = "Golang"
多变量声明,指定变量类型,并且初始化变量:
var (
name string = "Golang"
num int = 1
)
多变量声明,指定变量类型,未初始化变量为默认值(默认值根据数据类型确定):
var (
name string
num int
)
多变量声明,先指定变量类型,随后对变量进行初始化:
var (
name string
num int
)
name = "Golang"
num = 1
多变量声明,根据变量的值自动推导出变量的数据类型:
var (
name = "Golang"
num = 1
)
多变量声明,指定变量为同一类型,未初始化变量为默认值(默认值根据数据类型确定):
var name, num int
多变量声明,指定变量为同一类型,并且初始化变量:
var name, num int = 1, 2
多变量声明,指定变量为不同类型,并且初始化变量:
var name, num = "Golang", 1
:=
定义:=
定义变量包括声明和赋值,可以省略关键字 var
和变量类型,完全根据变量的值自动推导出变量的数据类型。
变量声明,根据变量的值自动推导出变量的数据类型,并且初始化:
name := "Golang"
多变量声明,根据变量的值自动推导出变量的数据类型,并且初始化:
name, num := "Golang", 0
简化变量声明规则:
var
。:=
左侧的变量是已经声明过的,编译会产生错误。:=
这种方式定义变量只能在函数内部使用。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。