目录
- 变量
- 变量的分析
- 1.变量的创建的四种形式
- 1.1总结
- 1.2第一种 var a int 声明
- 1.3 第二种 var a string = "XXXX" 初始化
- 1.4第三种 var a = "XXXX"
- 1.5第四种 a := XXXX
- 2.一次性声明多个变量
- 3.一次初始化多个变量
- 3.1交换值
- 4.全局变量--局部变量
- 5. 声明和初始化的区别
- 常见变量
变量
变量是计算机存储和操作数据的一种方式。可以把它想象成一个标记,类似于一个容器,在内存中存储某个值或数据,并可以对其进行读取、修改或删除等操作。
在编程中,声明一个变量就相当于创建了一个容器并给它赋予了一个名称,以便随时引用这个容器中的值或数据。这样可以方便地使用和管理数据,同时也避免了重复输入数据的麻烦。
例如,要存储一个人的姓名,可以创建一个名为“name”的变量,并将其赋值为该人的姓名,这样就可以在程序中随时调用这个变量来使用这个姓名,而不需要每次都重新输入。
总之,变量是计算机编程中的基本概念,帮助我们在程序中存储和操作数据。
变量的分析
修改
也有那种独特理解
变量就是你的房间号 308 309 401
变量的类型就是房间的种类 单人间 双人间 大豪房
房间的值 就是所住的人 或是 所放的物品
1.变量的创建的四种形式
1.1总结
var a int //不给值 声明
var a int =12 //手动补充类型 初始化
var a = 12 //自动补充类型 初始化
a := 12 //省略var 和类型 自动补充类型 初始化
1.2第一种 var a int 声明
这只是声明了一种变量 但是变量没有值 系统会分配默认值
fmt.Printf("\n----------var b string---------------\n")
var b string
fmt.Printf("%s",b) // 只声明 不赋值 就会默认值 空
var a int
fmt.Printf("%d",a) // 只声明 不赋值 就会默认值 0
1.3 第二种 var a string = “XXXX” 初始化
这只是声明了一种变量 而且给了值
这就是我们所说的初始化
fmt.Printf("\n----------var b string=xx---------------\n")
var str string = "hello"
fmt.Printf(str)
var str1 string = 12 //类型不比配 报错
fmt.Printf(str1)
需要注意的是:
当类型是string 是无法接受其他类型的 否则就会报错
比如:
var str1 string = 12
定义了string 但是给了数值12 会报错的
1.4第三种 var a = “XXXX”
这种方式 很常用的 不要要声明类型 直接赋值
程序会根据值 来判断类型
fmt.Printf("\n----------var b =xx---------------\n")
var num = 12;
fmt.Println(num)
var num1 = "我爱你"; //可以不用声明类型 自动识别
fmt.Println(num1)
1.5第四种 a := XXXX
这种方式go独有的 很厉害 也很常用
a := xx
省略的var 关键词 还自动分配数据类型
fmt.Printf("\n----------b := xx---------------\n")
name := "jack" //省略 var 和 类型
fmt.Println(name)
money := 16545646 //省略 var 和 类型
fmt.Println(money)
2.一次性声明多个变量
在一行中声明 多个变量
//2.一次性声明多个变量
var hobby1,hobby2,hobby3,hobby4 int
fmt.Println(hobby1)
fmt.Println(hobby2)
fmt.Println(hobby3)
fmt.Println(hobby4)
3.一次初始化多个变量
//3.一次性初始化多个值
//方式一
//var girl,age,hobby,knowledge = "新垣结衣",18,"拍照","本科"
//方式二
girl,age,hobby,knowledge := "新垣结衣",18,"拍照","本科"
fmt.Println(girl)
fmt.Println(age)
fmt.Println(hobby)
fmt.Println(knowledge)
3.1交换值
//交换值
xxx,yyy:= 12,45
fmt.Println(xxx)
fmt.Println(yyy)
xxx,yyy = yyy,xxx
fmt.Println(xxx)
fmt.Println(yyy)
4.全局变量–局部变量
//局部棉量就是 在函数或是{}中的变量
//全局变量 不在函数中
package main
import "fmt"
//---------------------------全局变量 不存在任何函数当中-------------//
var cont11 = "12"
var cont22 = "12"
var cont33 = "12"
//此处可以定义 全局的变量-----函数外面的变量
//上面的声明 作者为了统一这些外部变量 创建以下方式
var (
cont1 = "12"
cont2 = "12"
cont3 = "12"
)
func main() {
fmt.Println(cont1)
fmt.Println(cont2)
fmt.Println(cont3)
areaone(45)
//函数外的变量 文件中的变量----全局
fmt.Println(cont33)
//函数中的变量------局部
var xx = "我是main中的局部变量"
fmt.Println(xx )
//{} 的局部变亮
//{
// var xx = 77
//}
//fmt.Println(xx)
}
func areaone(a int) {
//-----------------------------局部变量 函数中的变量
var c = "我是局部在函数中的"
fmt.Println(a)
fmt.Println(c)
}
从数据结构的角度分析局部变量 — 全局变量
> 如果从数据结构的 方面讲解局部变量 — 全局变量
> 函数的执行 都会进行压栈的操作 栈顶的函数会创建一个空间 创建函数中的
> var 变量 当函数执行完后 就会进行 出栈的操作 此时函数创建的变量都会销毁
> 所以函数中的变量都是局部性的
> 下次执行在重新压栈
> 而在文件.go中不属于任何的函数变量 会一直存在 所以可以全局使用 任何函数都可使用
5. 声明和初始化的区别
声明----只创建 没有值
初始化--------创建就赋值