Skip to content

Latest commit

 

History

History
79 lines (57 loc) · 2.42 KB

2.2-变量.md

File metadata and controls

79 lines (57 loc) · 2.42 KB

8、变量

1、概念

在计算机,运行中程序数据一般都是存放在内存中,而在内存中,数据是以二进制格式存放,操作不方便, 故此使用名字来操作内存。程序运行时,可以修改的数据。

2、命名规则

规则:由数字、字母和下划线组成,但不能以数字开头

3、定义变量

go使用var关键字来定义变量或使用:=自动推导类型

 var  变量名  [变量类型] 
 var  变量名  [变量类型]  = 初始值 //定义并初始化
 
 变量名 := 初始值  //自动推导类型
   
 var (
    变量名 [变量类型] 
    变量名  [变量类型]  = 初始值 //定义并初始化
 )

int类型默认值为0,string默认为空字符串,bool默认值为false,rune字符类型,输出的是整形,如需输出字符,使用%c

4、多重赋值和匿名变量

多重赋值就是多个变量同时赋值;在接受函数的多个返回值时经常用到。

   	//多重赋值
   	A, B, C := 1, 2, 3
   	fmt.Println(A, B, C)
   
   	//匿名变量,使用 _ 表示
   	A, _ = B, A //将B的值赋值给A,A的值赋值给匿名变量,在函数多个返回值时经常用到
   	fmt.Println(A, B)

5、变量再内存中的表现方式

变量是由地址变量内容两部分组成的;获取一个变量的内容,需要先找到该变量存放地址,这也解释了引用变量的作用, 引用变量是允许使用多个名字来操作同一个变量内容。

普通变量和引用变量区别:

  普通变量:拥有自己的地址和内容
  引用变量:允许使用多个名字来操作同一个变量内容,指向同一个地址         

6、例子

package main
import "fmt"
func main(){
	var a int         //整形
	var b string      //字符串
	var c float32     //浮点型
	var d float64     //浮点型
	var e rune        //字符
	var f bool        //布尔
	var g struct{}    //结构体
	var h interface{} //接口类型,万能类型
	var i byte        //字节

	k := 1 //自动推导类型 int

	fmt.Printf("a = %v\n", a)
	fmt.Printf("b = %v\n", b)
	fmt.Printf("c = %v\n", c)
	fmt.Printf("d = %v\n", d)
	fmt.Printf("e = %v,%c\n", e, e)
	fmt.Printf("f = %v\n", f)
	fmt.Printf("g = %v\n", g)
	fmt.Printf("h = %v\n", h)
	fmt.Printf("i = %v\n", i)
	fmt.Printf("k = %v\n", k)
}