go语言使用-基础语法(2)之变量

你可曾疑问,为什么要使用变量?变量的本质是什么?。本篇文章将详细的介绍变量

一、 变量是什么?为什么需要变量?

1、编程的本质是对内存中数据的访问和修改。程序所用的数据都会保存在内存中,程序员需要一种机制来访问和修改保存在内存中数据。这种机制就是变量。每个变量都代表了某一小块内存,而且变量都是有名字的,程序对变量赋值,实际上就是把数据装入该变量的内存区域的 ;程序读取的值实际上就是把该变量所代表的内存区取值的过程。

形象理解为:变量相当于一个有名称的容器,该容器用于存储各种类型的数据。

2、变量是程序的基本组成单位
不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位

二、 变量

1、变量基本介绍

变量相当于内存中一个数据存储空间的表示。

你也可以这样理解:把变量名看做是一个房间的门牌号,通过门牌号我们可以找到房间,同样的道理,通过变量名可以访问到变量(值)。
这里写图片描述

2、变量使用的基本步骤

1) 声明变量(也称定义变量)
2) 变量赋值
3) 变量使用

代码演示:

func main()  {
    var num int  //声明(定义)变量
    num = 9      //变量赋值
    fmt.Println(num)//变量使用
}

3、变量使用细节和注意事项

1) 变量表示内存中的一个存储区域。该区域有自己的名称(变量名)和类型(数据类型) [如下图]

这里写图片描述

2) Golang变量使用的三种方式:

(1)第一种:指定变量类型,声明后若不赋值,使用默认值
(2)第二种:根据值自行判定变量类型(类型推导)
(3)第三种:省略var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误。

代码演示:

/*Golang变量使用的三种方式*/
func VariableDemo2()  {
    //Golang变量使用的三种方式
    //(1) 第一种:指定变量类型,声明后若不赋值,使用默认值

    var num2 int
    fmt.Println("num2=", num2) // 整数类型的默认值都是 go 0 

    //(2) 第二种:根据值自行判定变量类型(类型推导) 

    var num3 = 890 //编译器,就会进行类型推导,num3就是int
    var num4 = 1.2 //编译器,就会进行类型推导,num4就是float...
    fmt.Printf("num3 类型=%T, val= %v\n", num3, num3)
    fmt.Printf("num4 类型=%T, val= %v\n", num4, num4)

    //(3) 第三种:省略var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误

    num5 := 12 //等价两句话  var num5 int ; num5 = 12
    num6 := "tom"
    fmt.Printf("num5 类型=%T, val= %v\n", num5, num5)
    fmt.Printf("num6 类型=%T, val= %v\n", num6, num6)
}

3) 多变量声明
在编程中,有时我们需要一次性声明多个变量,Golang也提供这样的语法。

//一次性声明多个全局变量[(1) 作用域在整个包 (2) 作用域在本包和其它包 ]
var (
    num1 = 10
    name = "tom"
    sal = 234567.89
)
/*3) 多变量声明*/
func VariableDemo2() {
//多变量声明在编程中,有时我们需要一次性声明多个变量,Golang也提供这样的语法

    //使用全局变量
    fmt.Printf("num1=%v name=%v sal=%v\n", num1, name, sal)

    //声明多个局部变量【一般来说,局部变量的作用域 就在声明该变量的函数体内】
    var a, b, c int // a,b, c都是int类型,而是默认是0
    var a1, b1, c1 = 10, 1.2, "tom" // 使用类型推导,一次性给多个变量赋值
    a2, b2, c2 := 100, 1.21, "jack" 
    fmt.Println(a, b, c, a1, b1, c1, a2, b2, c2)

    a = 890
    //var a int 
    // a = 1.1 //错误  a是int ,就不能再给 1.1小数
}

4) 同区域的数据值可以在同一数据类型范围内不断变化,即同一个变量可以重复赋值

var a int
a = 1
a = 2

5) 变量在同一个作用域(在一个函数或者在代码块)内不能重名

6) 变量三要素:变量=变量名+值+数据类型,这一点需要格外注意。

7) Golang的变量的零值

Golang的变量如果没有赋初值,编译器会使用默认值, 比如 int 默认值 0 string默认值为空串.

三、变量的数据类型

这里写图片描述

变量的数据类型将在下一篇中详细介绍。

猜你喜欢

转载自blog.csdn.net/TDCQZD/article/details/81349481