文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Golang中变量与常量怎么声明与使用

2023-07-05 21:27

关注

这篇文章主要介绍“Golang中变量与常量怎么声明与使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Golang中变量与常量怎么声明与使用”文章能帮助大家解决问题。

变量

变量的类型

变量的作用是用来存储数据,不同的变量保存的数据类型有可能是不一样的,一般常见的数据类型有:整型、浮点型、布尔型等。

go作为一个强类型语言,go中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。

声明变量

go中的变量需要声明后才能使用,并且在同一个作用域中不支持重复声明。并且go语言的变量声明后必须使用。

变量声明的方式

标准声明

一般声明变量的格式为

// var 变量名 变量类型var name stringvar age intvar isShow bool

批量声明

当在声明变量的时候每次都需要写var关键字会显得比较繁琐,在go中还支持批量的声明变量

var (    name string    age int    isShow bool    num float32)

变量的初始化

go中在声明变量的时候,会自动对变量对应的内存区域进行初始化操作,每个变量都会被初始化成其类型的默认值,比如:整型和浮点型变量的默认值为0.字符串变量的默认值为空字符串。布尔值变量的默认值为false。切片、函数、指针变量的默认为nil

但是在声明变量的时候为其指定初始值。变量初始化的标准格式为

// var 变量名 类型 = 值var name string = "water"var age int = 18// 也可以一次定义多个变量var name,age = "water", 20

变量类型推导

很多时候可以将变量的类型省略,编辑器可以根据等号右边的值来推导出变量的类型

var name = "water"var age = 18

短变量声明

在函数内部,可以使用:=的声明方式初始化变量

package mainimport (    "fmt")// 全局变量var name = "water"func main() {    a := 1    b := 2    fmt.Println(a,b)}

匿名变量

在使用多重赋值时,如果想忽略一个值,可以使用匿名变量,匿名变量一般用一个下划线_表示,如下

func getValue()(int,string){    return 18,"water"}func main() {    a,_ := getValue()    _,b := getValue()    fmt.Println("a=",a)    fmt.Println("b=",b)}

匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明,变量声明需要注意以下问题:

常量

相比较于变量而言,常量是恒定不变的值,定义一些不会改变的值。常量的声明和变量声明非常相似,只是把var换成了const,常量在定义的时候必须赋值

const a = 123const b = 456

常量一旦声明就不会再发生变化了。而且多个常量也可以一起声明

const (    a = 123    b = 456)

如果同时声明多个常量时,省略了值则表示和上面一行的值相同。

const (    a = 1    b    c)

这样a、b、c的值都是100

iota

iota是go语言的常量计数器,只能在常量的表达式中使用。iota在const关键字中第一次出现时为0,然后const中每新增一行常量声明就将加一计数一次。

const (    a = iota // 0    b // 1    c // 2    d // 3)

常见的使用iota的技巧

使用_跳过一些值

const (    a = iota //0    b // 1    _    d // 3)

在iota中间插入其他值

const (    a = iota // 0    b = 20    c // 2    d // 3)const e = iota // 0

多个iota定义一行

const (    a,b = iota + 1,iota + 2 // 1,2    c,d // 2,3    e,f // 3,4)

关于“Golang中变量与常量怎么声明与使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯