字节笔记本字节笔记本

Go 基础之变量

2023-03-04

《Go 基础之变量》介绍了变量在内存中的存储、作用、零值、申请方法以及注意事项,强调了变量是编程的基本组成单元,并详细说明了在Go语言中如何定义和使用变量。

变量概述(是什么)

变量几乎在所有编程语言中都存在。变量相当于是内存中的一块数据,是一块存储空间,可以通过定义一个变量来申请一块数据存储空间,之后可以通过所定义的变量名来操作我们申请的这块存储空间。可以说变量是我们编写的程序的一个最基本的组成单元或者叫组成单位。
那么每一块存储空间应该存储什么类型的变量呢?这就引出了我们的数据类型。

  1. 变量是内存中的一块存储空间
  2. 通过定义变量申请存储空间
  3. 变量示意图

变量的作用与应用场景

1. 作用

  • 通过对变量的操作来实现对我们关注的数据的操作。

2. 应用场景

  • 在计算机中存储我们需要的数据,这时候就需要使用到变量

变量零值

变量定义未赋值时的默认值

  1. int 0
  2. int8 0
  3. int32 0
  4. int64 0
  5. rune 0 // rune 的实际类型是 int32
  6. float32 0 // 长度为 4 byte
  7. float64 0 // 长度为 8 byte
  8. bool false
  9. string “”

申请变量的几个方法(怎么使用)

我们如何在go语言当中申请变量?申请变量主要有以下几种方式:

1. 不赋值有默认的零值(根据数据类型来确定零值)

var variables1 int

2. 简短声明

variables2 := "我是波哥"

3. var variables = value 形式

var variables3 = 100 //这种情况,编译器自动做类型推导

4. 一次赋值多个值

var variables4,variables5,variables6,variables7 = 1,"我是波哥",3.14,true
fmt.Println(variables1,variables2,variables3,variables4,variables5,variables6,variables7)

5. 简短声明,多次赋值

variables4,variables5,variables6,variables7 := 1,"我是波哥",3.14,true

6. 申请多个全局变量,在函数体外部

var (
   variablesx int
   slicex []int
   interfacex interface{}
)

7.变量的交换

var i = 100
var j = 200
fmt.Println(i,j)
i,j = j,i
fmt.Println(i,j)

注意事项

  1. 变量未必不需要添加分号;
  2. 变量的交换 i,j = j,i
  3. Go 对于已声明但未使用的变量会在编译阶段报错,比如下面的代码就会产生一个错误:声明了 i 但未使用。
var index int
//如果一个变量暂时不使用,可以赋值给他自己 
index = index

_(下划线)是个特殊的变量名,任何赋予它的值都会被丢弃。

_,x := 122,211
fmt.Println(x)

变量访问控制

大写字母开头的变量是可导出的,即其它包(后面会讲到)可以读取的,是公有变量(相当于传统编程语言中class的public权限修饰符);小写字母开头的就是不可导出的,是私有变量,仅本包可以使用(相当于传统编程语言中class的private权限修饰符)。