go语言的变量定义示例详解

 更新时间:2022年12月20日 15:19:15   作者:夕水  
这篇文章主要为大家介绍了go语言的变量定义示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

特别说明: 本文只适合新手学习

这篇文章带我们入门go语言的定义变量的方式,其实和javascript很相似,所以特意总结在此。

在go语言中,也有变量和常量两种,首先我们来看变量的定义,定义变量我们分为定义单个变量和多个变量。

本文知识点总结如下图所示:

定义单个变量

在定义单个变量中,我们通过var关键字来定义一个变量,其后跟变量名和变量类型,其中变量类型可以省略,语法结构如下:

var <变量名> <变量类型>

例如:

var name string

以上代码表示定义一个变量名为name,变量类型为字符串的变量,注意go语言定义变量的类型始终是在最后。

可以看到,和js定义变量区别不大,只不过是多了一个类型声明,其中这个类型声明还可以省略。

定义多个变量

在go语言中,我们通过,操作符来定义多个变量,这里定义多个变量也分为两种情况,一种是多个变量都是同一类型,另外一种则是不同类型的多个变量,我们先来看第一种。

定义相同类型的多个变量

和定义单个变量一样,也是使用var关键字来定义,并且通过,来分隔,语法结构如下:

var <变量名1>,<变量名2>,<变量名3>,... <变量类型>

如:

var name1,name2,name3 string

以上定义了name1,name2,name3 3个变量,变量的类型都是string。

可以看到以上是定义相同类型的多个变量,那么我们应该如何定义不同类型的多个变量呢?

很简单,用()包裹起来,然后也是使用,分隔,在每个变量名后面紧跟变量类型即可,语法如下:

var (<变量名1> <变量1类型>,<变量名2> <变量2类型>...)

例如以下代码:

var (name string,age int)

是不是很简单?

变量的初始化

在go语言中,定义了变量,同样也会有初始化的操作,也就是说给变量初始化值,也是通过=操作符后跟值即可。语法结构如下:

var <变量名> <变量类型>? = <变量值>

例如:

var name string = "eveningwater"

变量类型的省略

其实我们在初始化变量的时候可以省略变量类型,然后go编译器会在编译的时候帮我们自动推导变量类型,这简直就是在写javascript啊,这也是我在以上语法变量类型那一块中标注?的原因,就表示可以写可以不写。例如以上示例代码就可以写成:

var name = "eveningwater"

如此看来,我们定义多个变量同样也可以省略变量类型,如:

var (name,age) = "eveningwater",26

又或者是:

var name1,name2  = "eveningwater","xxx"

var关键字的省略(简短声明)

go语言的定义变量名的关键字var也可以省略,这也是我没有想到的,如下所示:

name1,name2 := "eveningwater","xxx"

感觉挺神奇的,是吧!go把这种省略了var和type的声明叫做简短申明。这样一来我们就可以在定义变量的时候用这个":="来定义变量了,不,你想多了,使用这种方式来定义变量是有限制的,那就是这种方式只能够作用在函数内部,如果我们要定义全局变量的话,还是要老老实实的写var关键字。

全局变量与局部变量

通过以上的说明,我们知道了定义全局变量和定义局部变量的方式,如下:

var a string = "hello" //全局变量
func test() {
    b := " world" //局部变量
    c := a + b
    fmt.Printf("%s \n", c)
}

特别的变量名

go语言有个很特殊的变量名,那就是下划线"_",为什么说它特殊呢,因为定义它的值都会被丢弃,没错,就是丢弃,例如:

_,num = 35,34

其中_变量值为35将会被丢弃,最后就只剩下值为34的num变量了,感觉这种设计也是挺有意思的。

未使用变量的限制

go语言在编译阶段会对声明但未使用变量报错,比如以下代码就会报错: 声明了i变量但并未使用。

package main
func main(){
    //编译阶段报错
    var i int
}

常量

常量其实也就是在程序编译阶段定下来的值吗,无法被修改,在go语言中常量也可以被定义成数值,布尔值或者是字符串等类型。它的语法结构如下:

const variableName = value;

例如:

const num int = 10;

其中常量的类型如果需要也可以加上。

以上就是本文内容了,感谢大家观看,看完本文,想来应该要不了几分钟,几分钟就掌握了go语言定义变量的概念和方式,想来还是值得的,非常适合新手学习

以上就是go语言的变量定义示例详解的详细内容,更多关于go语言变量定义的资料请关注脚本之家其它相关文章!

相关文章

  • Go Java算法之二叉树的所有路径示例详解

    Go Java算法之二叉树的所有路径示例详解

    这篇文章主要为大家介绍了Go Java算法之二叉树的所有路径示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 聊聊Go语言编译github上的项目遇到的坑

    聊聊Go语言编译github上的项目遇到的坑

    这篇文章主要介绍了解决Go语言编译github上的项目遇到的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Go存储基础使用direct io方法实例

    Go存储基础使用direct io方法实例

    这篇文章主要介绍了Go存储基础之如何使用direct io方法实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • go-zero创建RESTful API 服务的方法

    go-zero创建RESTful API 服务的方法

    文章介绍了如何使用go-zero框架和goctl工具快速创建RESTfulAPI服务,通过定义.api文件并使用goctl命令,可以自动生成项目结构、路由、请求和响应模型以及处理逻辑,感兴趣的朋友一起看看吧
    2024-11-11
  • Go语言中乐观锁与悲观锁的具体使用

    Go语言中乐观锁与悲观锁的具体使用

    乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题,本文主要介绍了Go语言中乐观锁与悲观锁的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 浅析Go语言中的Range关键字

    浅析Go语言中的Range关键字

    Range是go语言中很独特的一个关键词,也相当好用。下面就跟着小编来再聊聊这个Range关键字,有需要的朋友们可以参考借鉴。
    2016-09-09
  • golang的httpserver优雅重启方法详解

    golang的httpserver优雅重启方法详解

    这篇文章主要给大家介绍了关于golang的httpserver优雅重启的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • Golang flag包的具体使用

    Golang flag包的具体使用

    本文主要介绍了Golang flag包的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Go语言Zap库Logger的定制化和封装使用详解

    Go语言Zap库Logger的定制化和封装使用详解

    这篇文章主要介绍了Go语言Zap库Logger的定制化和封装使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 使用Go语言实现接口继承的方式

    使用Go语言实现接口继承的方式

    在Go语言中,接口(interface)是一种定义方法集合的类型,它并不包含方法的具体实现,只是规定实现该接口的类型必须提供这些方法的实现,下面我将通过示例代码来详细解释如何使用Go语言实现接口组合,以及为什么这种方式可以看作是实现接口继承的一种方式
    2024-05-05

最新评论