第 2 章 / 共 20 章
变量、常量与基本类型
var/:=/const、基础数据类型与零值
声明变量
Go 用 var 声明变量;函数内可用短声明 := 让类型自动推断。
package main
import "fmt"
func main() {
var name string = "Alice"
var age = 30 // 类型由字面量推断
count := 0 // 等价于 var count int = 0
var x, y int = 1, 2 // 多变量
fmt.Println(name, age, count, x, y)
}基本类型
- 整型:int / int8 / int16 / int32 / int64 / uint... / byte (uint8) / rune (int32)
- 浮点:float32 / float64
- 复数:complex64 / complex128
- 布尔:bool(true / false)
- 字符串:string(不可变 UTF-8 字节序列)
零值
未显式初始化的变量自动取零值:数值为 0、bool 为 false、string 为 ""、引用类型为 nil。
package main
import "fmt"
func main() {
var n int // 0
var s string // ""
var b bool // false
var p *int // nil
fmt.Printf("n=%d s=%q b=%t p=%v\n", n, s, b, p)
}常量
const 在编译期确定,不可修改。配合 iota 可生成枚举式常量。
package main
import "fmt"
const Pi = 3.14159
const (
Sunday = iota // 0
Monday // 1
Tuesday // 2
)
func main() {
fmt.Println(Pi)
fmt.Println(Sunday, Monday, Tuesday)
}类型转换
Go 不做隐式转换,必须显式 T(v):
package main
import "fmt"
func main() {
i := 42
f := float64(i)
u := uint(f)
fmt.Println(i, f, u)
}