GO基础语法1-变量 | 青训营笔记

46 阅读2分钟

一、变量

变量三要素:变量名、值、数据类型

1.为什么要声明变量?声明给谁看的?

  • 声明给编译器看的,让编译器知道这个变量的类型和占用的空间大小,在编译的时候给变量分配对应大小的内存空间。
  • 避免在运行时出现类型不匹配或内存溢出的错误。
  • 还可以提高代码可读性和可维护性。

2.怎么声明变量?

var 变量名 数据类型

1)声明多个变量

var a, b, c int

2)声明全局变量

var (
    c1 int
    c2 int
)

全局变量通常是定义在包级别下的,可以在整个包内被访问。 在 Go 语言中,所有变量的作用域都是定义它们的代码块,如果变量在函数内部定义,那么它的作用域就是该函数内部。如果变量在函数外部定义,那么它的作用域就是整个包内。

3.初始化

如果不初始化会怎么样?

变量会被赋予对应的零值。

怎么初始化?

1)a := 1 相当于 var a int = 1

注意事项: a. 在相同代码块中不能对一个变量重复使用 b. 必须在函数体内使用

2)var a = 1

4.使用细节

  1. 同一作用域下的变量值可以在不改变类型的前提下重复赋值。
var i int = 10
i = 20
i = 30
fmt.Println("i=", i)
  1. 同一个作用域下的变量不能重名
  2. 如果没有给变量赋初值,编译器会赋默认值。 数值类型的默认值为0 字符串类型的默认值为空字符串 布尔类型的默认值为false 指针、切片、管道、字典、接口、函数的默认值为nil

5.变量的生命周期

  1. 全局变量的生命周期和程序的生命周期相同
  2. 局部变量的生命周期和函数的生命周期相同 就是说函数执行完毕之后,函数内的局部变量占用的空间就会被回收。