链接: 知识来源
变量的定义
package main
import "fmt"
func main() {
//var 变量名 变量类型
var name string = "mys"
var age int = 20
//批量定义变量
var (
a int
b string
c bool
)
fmt.Println(name, age)
fmt.Println(a, b, c)
}
输出:
mys 20
0 false
变量初始化
package main
import "fmt"
func main() {
//短变量声明+初始化
// := 自动推导变量类型并且必须是一个没有被定义过的变量
name := "mys"
age := 18
fmt.Println(name, age)
fmt.Printf("%T %T", name, age)
}
输出:
mys 18
string int
打印内存地址
package main
import "fmt"
func main() {
num := 100
fmt.Printf("num:%d MemoryAddress:%p \t", num, &num)
//内存地址不变
num = 200
fmt.Printf("num:%d MemoryAddress:%p", num, &num)
}
输出:
num:100 MemoryAddress:0xc00001c0a8 num:200 MemoryAddress:0xc00001c0a8
变量交换
package main
import "fmt"
func main() {
a := 100
b := 200
a, b = b, a
fmt.Println(a, b)
}
输出:
200 100
匿名变量
package main
import "fmt"
func test() (int, int) {
return 100, 200
}
func main() {
//匿名变量不会占用内存空间,不会分配内存。 匿名变量与匿名变量直接也不会因为多次声明而无法使用
//GO语言 声明变量但是不使用会报错
a, _ := test()
_, b := test()
fmt.Println(a, b)
}
输出:
100 200
常量
package main
import "fmt"
func main() {
const URL1 = "www.baidu.com" // 隐式类型定义
const URL2 string = "www.csdn,com" // 显示类型定义
const a, b, c = "mys", 3.14, true // 多重赋值
fmt.Println(URL1, "\t", URL2)
fmt.Println(a, b, c)
//iota特殊常量,是go语言的常量计数器
//iota在const关键字出现时将被重置为零
const (
x = iota
y
z
)
fmt.Println(x, y, z)
}
输出
www.baidu.com www.csdn,com
mys 3.14 true
0 1 2