CodeFun Go

类型推导

在声明一个变量而不指定其类型时(即使用不带类型的 := 语法或 var = 表达式语法),变量的类型由右值推导得出。

当右值声明了类型时,新变量的类型与其相同:

var i int
j := i // j 也是一个 int

不过当右边包含未指明类型的数值常量时,新变量的类型就可能是 int, float64 或 complex128 了,这取决于常量的精度:

i := 42           // int
f := 3.142        // float64
g := 0.867 + 0.5i // complex128
package main

import "fmt"

func main() {
	v := 1
	fmt.Printf("v is of type %T\n", v)

    v1 := 1.1
	fmt.Printf("v1 is of type %T\n", v1)

    v2 := "golang"
    fmt.Printf("v2 is of type %T\n", v2)
}
v is of type int
v1 is of type float64
v2 is of type string