4.4 变量

Kesa...大约 1 分钟

4.4 变量

  • 使用 var 声明:

    var identifier type
    
    // 声明
    var a int
    var b string
    var (
    	c bool
        d *int
    )
    
  • 采用驼峰命名法

  • 赋值:

    // 声明并赋值
    var e = 1 // 自动推断类型(编译期)
    var f string = "f"
    // 并行赋值
    var g, h = 1, 2
    // 交换
    g, h = h, g // g:2, h: 1
    // 抛弃值
    _, b = 5, 7 
    
  • 全局变量: 可以声明,但不使用

  • 局部变量: 声明后必须使用,可使用 := 进行简短声明并赋值

    a := 1
    

4.4.1 类型

值类型

  • int, float, bool, string 属于值类型,使用这些类型的变量直接指向存在内存中的值
  • 进行赋值 j = i 时,实际上将内存中的值进行拷贝

    image-20230502151223391
    image-20230502151223391
  • 值类型变量的值存在栈中

  • 使用 & 获取内存地址: &i

引用类型

  • 引用类型存储的时变量值所在的内存地址image-20230502151528930

  • 引用类型变量赋值: r2 = r2,只有地址被复制,对 r2 的修改将会影响 r1

4.4.2 init 函数

每个源文件可包含一个或多个 init() 函数,多个会按照从上至下的顺序执行。

包初始化自动执行且无法人为执行,优先级高于main()

变量可在init() 中初始化:

package trans

import "math"

var Pi float64

func init() {
   Pi = 4 * math.Atan(1) // init() function computes Pi
}
上次编辑于:
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.2