栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Golang极速入门课四,变量与常量

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang极速入门课四,变量与常量

系列文章目录

跟着猫猫学Golang,快人一步
系列初开,跟着我走进Go 语言的世界里

系列目录

Golang极速入门课一,我与Golang初相见
Golang极速入门课二,关键字、保留字与 Go语言思想
Golang极速入门课三,基本类型知多少


文章目录
  • 系列文章目录
  • 前言
  • 一、变量与常量的含义
    • 1.变量
      • 1.var 与 :=
        • 直接声明
        • 根据值自行判定变量类型
      • 2.匿名变量
      • 3.注意事项
    • 2.常量
      • 1.const
        • 根据值自行判定变量类型
      • 2.iota
  • 总结


前言

随着Golang的不断普及,国内针对Go语言的需求不断增加,但相对应的学习者与教程却并没有增多,Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易,它也是我编写最顺手的编程语言。


一、变量与常量的含义 1.变量

变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。
程序运行过程中的数据都是保存在内存中,之后我们利用变量将这个数据的内存地址保存起来,以后直接通过这个变量就能找到内存上对应的数据。

1.var 与 := 直接声明

单个声明:

var a1 type

可以一次声明多个变量:

var a1 , a2 type

批量声明:
每声明一个变量就需要写var关键字会比较繁琐,支持批量变量声明

var (
    a1 string
    a2 int
    a3 bool
    a4 float32
)

var 关键字如果没有初始化,则变量默认为不同类型的零值,例如
整型为 0,字符串为 “”,bool值为 false

根据值自行判定变量类型

单个声明:

var a1 = 0

多个变量:

var a1 , a2 = 0 , 0

批量声明:

var (
		a1 = ""
		a2 = 0
		a3 = false
		a4 = 2.2
	)

若在函数内声明时,下方表达式等同

var intVal = 1
intVal :=1
2.匿名变量

在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。 匿名变量用一个下划线_表示,例如:

func noExist2() (int, string) {
	return 1, "noExist2"
}
func main() {
	x, _ := noExist2()
	fmt.Println("x=", x)
}

匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。

我们当想要忽略某个值时常使用,但忽略错误时可能导致无法预知错误发生

3.注意事项

如果在相同的代码块中,我们不可以再次对于相同名称的变量使用初始化声明,例如:a := 20 就是不被允许的,编译器会提示错误 no new variables on left side of :=,但是 a = 20 是可以的,因为这是给相同的变量赋予一个新的值。
如果你在定义变量 a 之前使用它,则会报未声明的变量(undefined a)。
如果你声明了一个局部变量却没有在相同的代码块中使用它,则会报一个变量声明了但未使用 (a declared but not used)

2.常量

相对于变量,常量是一个简单值的标识符,代表恒定不变的值,多用于定义程序运行期间不会改变的那些值。

常量与变量类似

1.const 根据值自行判定变量类型

单个声明:

const pi = 3.14

多个变量:

const pi, e = 3.1415, 2.7182

批量声明:

 const (
        pi = 3.1415
        e = 2.7182
    )

若只声明一个常量的值,那么其他下方常量则为同值,即
n1 = n2 = n3 = 100

 const (
        n1 = 100
        n2
        n3
    )
2.iota

iota是go语言的常量计数器,只能在常量的表达式中使用。
iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。:

const (
            n1 = iota //0
            n2        //1
            n3        //2
            n4        //3
        )

几个常见的iota示例:
使用_跳过某些值

const (
        n1 = iota //0
        n2        //1
        _
        n4        //3
    )

iota声明中间插队

当我们再次声明 iota 时,计数器从零开始

const (
        n1 = iota //0
        n2 = 100  //100
        n3 = iota //2
        n4        //3
    )
const n5 = iota //0

多个iota定义在一行

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

感谢您看到这里

Golang的变量相较于其他语言的 int a 改为了 var a int,且通过语言来警告未使用的变量,将自己所存在的变量都将是存在引用的。既便于垃圾回收的查询与判断,也减少了未使用的变量挤占内存的情况。通过简短形式,使用 := 赋值操作符,也简便工作中不断声明变量的繁琐工作,当一个返回使用到多个变量时不必将这些变量单独进行声明。

希望这个博客能对你有所益处。我是轻王,我为自己代言。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/903437.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号