返回介绍

定义变量

发布于 2024-10-12 12:35:51 字数 1677 浏览 0 评论 0 收藏 0

Go 语言里面定义变量有多种方式。

使用 var 关键字是 Go 最基本的定义变量方式,与 C 语言不同的是 Go 把变量类型放在变量名后面:

//定义一个名称为“variableName”,类型为"type"的变量
var variableName type

定义多个变量

//定义三个类型都是“type”的变量
var vname1, vname2, vname3 type

定义变量并初始化值

//初始化“variableName”的变量为“value”值,类型是“type”
var variableName type = value

同时初始化多个变量

/*
    定义三个类型都是"type"的变量,并且分别初始化为相应的值
    vname1 为 v1,vname2 为 v2,vname3 为 v3
*/
var vname1, vname2, vname3 type= v1, v2, v3

是不是觉得上面这样的定义有点繁琐?有一种写法可以让它变得简单一点。可以直接忽略类型声明,那么上面的代码变成这样了:

/*
    定义三个变量,它们分别初始化为相应的值
    vname1 为 v1,vname2 为 v2,vname3 为 v3
    然后 Go 会根据其相应值的类型来初始化它们
*/
var vname1, vname2, vname3 = v1, v2, v3

觉得上面的还是有些繁琐,继续简化:

/*
    定义三个变量,它们分别初始化为相应的值
    vname1 为 v1,vname2 为 v2,vname3 为 v3
    编译器会根据初始化的值自动推导出相应的类型
*/
vname1, vname2, vname3 := v1, v2, v3

现在是不是看上去非常简洁了? := 这个符号直接取代了 vartype ,这种形式叫做简短声明。不过它有一个限制,那就是它只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用 var 方式来定义全局变量。

_ (下划线)是个特殊的变量名,任何赋予它的值都会被丢弃。在这个例子中,将值 35 赋予 b ,并同时丢弃 34

_, b := 34, 35

Go 对于已声明但未使用的变量会在编译阶段报错,比如下面的代码就会产生一个错误:声明了 i 但未使用。

package main
func main() {
    var i int
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文