跳到主要内容

变量

2、变量

在计算机编程中,我们用变量来保存并管理很多数据,并用变量名来区分、识别和处理这些数据。

变量本质上是一种对内存地址的引用,让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字进行操作。

2.1、声明变量

和C语言一样,Go语言也是通过var关键字进行声明,不同的是变量名放在类型前,具体格式如下

var  变量名 变量类型

var x int

var s string

var b bool

fmt.Println(x) // 0

fmt.Println(s) // ""

fmt.Println(b) // false

提示

声明未赋值,系统默认赋这些类型零值

如果声明多个变量,可以进行简写

// 声明多个相同类型变量

var x,y int

// 声明多个不同类型变量

var (

name string
age int
isMarried bool

)

2.2、变量赋值

变量赋值的3种方法

(1)变量名=值

// 先声明再赋值

var x int

x = 10 // 不要 重复声明 : var x = 10

fmt.Println(x)

x = 20. // 重新赋值

// 直接声明赋值

// var y string= "hello yuan!"

var y = "hello yuan!"

fmt.Println(y)

// 声明赋值精简版

s := "hi,yuan!" // 1、编译器会自动根据右值类型推断出左值的对应类型,等同于var s = "hi,yuan!"。2、该变量之前不能声明,否则重复声明

fmt.Println(s)

// 一行声明赋值多个变量

var name,age = "yuan",22

(2)变量名=变量名

	var a = 100

var b = a // 变量之间的赋值是值拷贝

fmt.Println(a, b)

a = 200

fmt.Println(b)

(3)变量名=值 + 值 (变量名)

      var a, b = 10, 20

var c = a + b

fmt.Println(c)

var d = c + 100

fmt.Println(d)

练习题:

提示
  1. 将x,y两个变量的值进行交换

2.3、匿名变量

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

a,b,c :=4,5,6

fmt.Println(a,b,c)

// 如果只想接受第个变量,可以对前两个变量匿名

_,_,x := 4,5,6

fmt.Println(x)

提示

匿名变量不占用命名空间,不会分配内存

提示

让代码非常清晰,基本上屏蔽掉了可能混淆代码阅读者视线的内容,从而大幅降低沟通的复杂度和代码维护的难度。

2.4、变量命名规则

变量命名是需要遵循一定的语法规范的,否则编译器不会通过。

提示

1、变量名称必须由数字、字母、下划线组成。

提示

2、标识符开头不能是数字。

提示

3、标识符不能是保留字和关键字。

提示

4、建议使用驼峰式命名,当名字有几个单词组成的时优先使用大小写分隔

提示

5、变量名尽量做到见名知意。

提示

6、变量命名区分大小写

go语言中有25个关键字,不能用于自定义变量名

break        default          func           interface         select

case defer go map struct

chan else goto package switch

const fallthrough if range type

continue for import return var

还有30多个预定义的名字,用于内建的常量、类型和函数

// 内建常量:

true false iota nil

// 内建类型:

int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64 uintptr

float32 float64 complex128 complex64

bool byte rune string error

// 内建函数:

make len cap new append copy close delete

complex real imag

panic recover