一、变量定义
package main //导入包 import "fmt" func main() { //定义变量:var 变量名 变量类型 var name string //定义多个变量 var ( age int address string ) fmt.Println(name, age, address) //定义变量并赋值 var name2 string = "zhangsan" //;=自动推导类型 age2 := 18 fmt.Println(name2, age2) //输出变量,类型,内存地址 fmt.Printf("name2:%s,类型%T,内存地址:%p \n", name2, name2, &name2) fmt.Printf("age2:%d,类型%T,内存地址:%p \n", age2, age2, &age2) //输入内容 fmt.Println("hello,world.") }
0 zhangsan 18 name2:zhangsan,类型string,内存地址:0xc00005a250 age2:18,类型int,内存地址:0xc0000160c8 hello,world.
二、变量交换
package main import "fmt" //变量交换 func main() { a := 1 b := 2 fmt.Println(a, b) a, b = b, a fmt.Println(a, b) }
1 2 2 1
三、匿名变量
package main import "fmt" // _表示匿名变量,赋值给匿名变量的值将会被抛弃 //匿名变量不分配内存,不占用内存,可以多次声明使用 func main() { //只接收一个返回值 a, _ := test() //只接收一个返回值 _, b := test() fmt.Println(a, b) } /** 返回值为两个 */ func test() (int, int) { return 100, 200 }
100 200
四、局部变量与全局变量
package main import "fmt" //局部变量与全局变量 var name = "zhangsan" var age = 25 func main() { //局部变量 var addr = "china" //局部变量可以覆盖全局变量 var age = 26 fmt.Println(name, age, addr) test() } func test() { fmt.Println(name, age) }
zhangsan 26 china zhangsan 25