Go——变量和常量

男娘i 2023-10-09 20:41 186阅读 0赞

1、变量

变量:使用一个名称来绑定一块内存地址,该内存地址中存放的数据类型由定义变量时指定的类型决定,该内存地址里面存放的内容可以改变。

1.1 显示的完整声明
  1. var varName dataType [ = value ]
  • 关键字var用于变量声明。
  • varName是变量名标识符。
  • dataType是l.3节介绍的基本类型。
  • value是变量的初始值,初始值可以是字面量,也可以是其他变量名,还可以是一个表达式;如果不指定初始值,则Go默认将该变量初始化为类型的零值。
  • Go的变量声明后就会立即为其分配空间。

    var a int = 1
    var a int = 2 * 3
    var a int = b

1.2 短类型声明
  1. varName := value
  • :=声明只能出现在函数内(包括在方法内)。
  • 此时Go编译器自动进行数据类型推断。
  • Go支持多个类型变量同时声明并赋值。例如:

    a, b := 1, “hello”

变量具有如下几个属性:

  • 变量名:即自定义标识符
  • 变量值:变量实际指向的是地址里存放的值,变量的值具体怎么解析是由变量的类型来决定的。在 初始化变量值时,我们可以使用字面量,也可以使用其他的变量名。
  • 变量存储和生存期:Go语言提供自动内存管理,通常程序员不需要特别关注变量的生存期和存放位置。编译器使用栈逃逸技术能够自动为变量分配空间:可能在栈上,也可能在堆上。
  • 类型信息:类型决定了该变量存储的值怎么解析,以及支持哪些操作和运算,不同类型的变量支持的操作和运算集是不一样的。
  • 可见性和作用域:Go内部使用统一的命名空间对变量进行管理,每个变量都有一个唯一的名字,包名是这个名字的前缀。

2、常量

常量使用一个名称来绑定一块内存地址,该内存地址中存放的数据类型由定义常量时指定的类型决定,而且该内存地址里面存放的内容不可以改变。Go中常量分为布尔型、字符串型和数值型常量。常量存储在程序的只读段里(.rodata section)。

预声明标识符iota用在常量声明中,其初始值为0。一组多个常量同时声明时其值逐行增加,iota可以看作自增的枚举变量,专门用来初始化常量。

  1. //类似美剧的iota
  2. const (
  3. c0 = iota //c0 == 0
  4. c1 = iota //c1 == 1
  5. c2 = iota //c2 == 2
  6. )
  7. //简写模式
  8. const (
  9. a0 = iota //a0 == 0
  10. a1 //a1 == 1
  11. a2 //a2 == 2
  12. )
  13. //注意iota逐行增加
  14. const (
  15. a = 1 << iota // a == 1 (iota == 0)
  16. b = 1 << iota // b == 2 (iota == 1)
  17. c = 3 // c == 3 (iota == 2, unused)
  18. d = 1 << iota // d == 8 (iota == 3)
  19. )
  20. const (
  21. u = iota * 42 // u == 0 (untyped integer constant)
  22. v float64 = iota * 42 // v == 42.0 (float64 constant)
  23. w = iota * 42 // w == 84 (untyped integer constant)
  24. )
  25. //分开的const语句,iota每次都从0开始
  26. const x = iota //x == 0
  27. const y = iota //y == 0

发表评论

表情:
评论列表 (有 0 条评论,186人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Go——变量常量

    1、变量 变量:使用一个名称来绑定一块内存地址,该内存地址中存放的数据类型由定义变量时指定的类型决定,该内存地址里面存放的内容可以改变。 1.1 显示的完整声明

    相关 Go语言基础】变量常量

    用Go语言编写的程序都是从基本组件构成,而构成这些基本组件的是标识符,本章中将介绍到Go语言中使用到变量,常量以及基本数据类型。 1. 标识符 标识符是函数、变量、常量

    相关 go第四讲:变量常量

    和其他语言一样,go也有自己的变量和常量,那么是真么定义的呢 变量用关键字 var,常量用关键字const 一:声明方法 1)指定类型,不赋值(默认是初始值,比如int