V
Vel·ToolKit
简洁 · 高效 · 即开即用
ZH
第 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)
}