变量
- 输出变量的信息
package main
import (
"fmt"
"reflect"
)
func main() {
x := 10
fmt.Println(&x) // 输出变量的地址
fmt.Printf("%T, %v \n", x, x) // 输出变量类型(%T)和值(%v)
fmt.Println(reflect.TypeOf(x)) // 输出变量类型
}
输出结果:
- 变量定义
package main
import (
"fmt"
)
func main() {
// 定义单个变量
var a int
b := 1 // 这种定义的变量只能在函数内部使用
fmt.Println(a)
fmt.Println(b)
// 定义多个变量
var x, y int
m, n := 1, "abc"
fmt.Println(x, y)
fmt.Println(m, n)
// 以组的方式定义多行变量
var (
c, d int
e, f = false, "haha"
)
fmt.Println(c, d, e, f)
}
输出结果:
- 内部变量定义了要使用:
package main
import (
"fmt" // 导入的包,不使用就报错
)
var x int = 100 // 定义在外部的变量, 可以不使用
func main() {
var y int = 100 // 内部定义的变量,不使用就报错
const z int = 100 // 定义在内部的常量, 可以不使用
}
- 变量的地址
package main
import (
"fmt"
)
var x int = 10
func main() {
fmt.Println(&x) // 输出: 0x4f6018
x := 10
fmt.Println(&x) // 输出: 0xc42000e290
}
- 类型别名
byte uint8
rune int32