我正在参与掘金创作者训练营第6期,

一、为什么需要变量:

  1. 一个程序就是一个世界。
  2. 变量是程序的基本组成单位:不论是使用哪种高级语言编写程序,变量都是其程序的基本组成单位

二、变量的介绍

一、变量的概念:

变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,同样的道理,通过变量名可以访问到变量值。

二、变量的使用步骤:

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

三、变量快速入门案例:

package main

import "fmt"

func main() {
	// 定义变量、声明赋值
	var i int
	// 给 i 赋值
	i = 10
	// 使用变量
	fmt.Println("i=", i)

}

int 是用来明确变量类型的
var 的是弱类型
复制代码


四、变量使用注意事项:

  1. 变量表示内存中的一个存储区域
  2. 该区域有自己的名称(变量名)和类型(数据类型)

  1. Golang 变量使用的三种方式
  • 第一种:指定变量类型,声明后若不赋值,使用默认值。
package main

import "fmt"

func main() {
	// golang 的变量使用方式一
	// 指定变量类型,声明后若不赋值,使用默认值。
	var i int
	fmt.Println("i=", i)
}
复制代码

  • 第二种:根据值自行判定变量类型(类型推导)
package main

import "fmt"

func main() {
	// golang 的变量使用方式一
	// 指定变量类型,声明后若不赋值,使用默认值。
	// int 的默认值是0 ,其他数据类型的默认值后面介绍
	var i int
	fmt.Println("i=", i)

	// 第二种:根据值自行判定变量类型(类型推导,隐式转换)
	var num = 10.11
	fmt.Println("num=", num)
}
复制代码

var=
package main

import "fmt"

func main() {
	// golang 的变量使用方式一
	// 指定变量类型,声明后若不赋值,使用默认值。
	// int 的默认值是0 ,其他数据类型的默认值后面介绍
	var i int
	fmt.Println("i=", i)

	// 第二种:根据值自行判定变量类型(类型推导,隐式转换)
	var num = 10.11
	fmt.Println("num=", num)

	// 第三种:省略var ,注意:=左侧的变量不应该是已经声明过的,否则会导致编译错误
	// 下面的方式等价于 var name string 	name = "tom"
	// := 的 :不能省略
	name := "tom"
	fmt.Println("name=", name)

}
复制代码

  • 多变量声明:
    • 在编程中,有时我们需要一次性声明多个变量,Golang也提供这样的语法
    • 举例说明:
package main

import "fmt"

func main() {
	// 该案例演示golang如何一次性声明多个变量
	// var n1 int
	// var n2 int
	// var n3 int

	// var n1, n2, n3 int
	// fmt.Println("n1=", n1, "n2=", n2, "n3=", n3)

	// 一次性声明多个变量的方式2
	var n1, name, n3 = 100, "tom", 888
	fmt.Println("n1=", n1, "name=", name, "n3=", n3)

	// 一次性声明多个变量的方式三,同样可以使用类型推导
	n1, name, n3 = 100, "tom~", 888
	fmt.Println("n1=", n1, "name=", name, "n3=", n3)
}
复制代码

    • 如何一次性声明多个全局变量【在GO中函数外部定义变量就是全局变量 】:
package main

import "fmt"

// 定义全局变量
var n1 = 100
var n2 = 200
var name = "jack"

// 上面的声明方式也可以改成一次性声明
var (
	n3    = 200
	n4    = 900
	name2 = "mary"
)

func main() {
	// 输出全局变量
	fmt.Println("n1=", n1, "name=", name, "n2=", n2)
	fmt.Println("n3=", n1, "name2=", name2, "n4=", n4)
}
复制代码

    • 该区域的数据值可以在同一类型范围内不断变化(重点)
package main

import "fmt"

// 变量使用的注意事项

func main() {

	// 该区域的数据值可以在同一个类型范围内不断变化
	var i int = 10
	i = 30
	i = 50
	fmt.Println("i=",i)

	i = 1.2 //报错,原因是因为不能改变数据类型
}
复制代码

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

import "fmt"

// 变量使用的注意事项

func main() {

	// 该区域的数据值可以在同一个类型范围内不断变化
	var i int = 10
	i = 30
	i = 50
	fmt.Println("i=", i)

	// i = 1.2 //报错,原因是因为不能改变数据类型

	// 变量在同一个作用域(在一个函数或者代码块)内不能重名
	// var i int = 59 //变量重复定义
	// i := 99 //这样同样不行
}
复制代码

int0string0

五、变量的声明,初始值和赋值

  1. 声明变量
var 变量名 数据类型var a intavar num 1 float32num1

\

  1. 初始化变量
var a int = 45avar b = 400

\

  1. 给变量赋值
var num int // 默认 0num = 780 ;

六、程序中 + 号的使用

  1. 当左右两边都是数值型时,则做加法运算。
  2. 当左右两边都是字符串,则做字符串拼接。
package main

import "fmt"

// 演示golang中 + 的使用

func main() {

	var i = 1
	var j = 2
	var r = i + j //做加法运算
	fmt.Println("r=", r)

	var str1 = "hello "
	var str2 = "world"
	var res = str1 + str2
	fmt.Println("res=", res)
}
复制代码