初始化
在变量声明的时候还可以包含初始值,每个变量对应一个,var 变量名 变量类型 = 表达式
。
var a int = 1
var a, b string = "hello", "world"
如果初始化值已存在,则可以省略类型;变量会从初始值中获得类型。
var a = math.Sin(0.5) // float64
var b = 1 // int
var c, d, e = 1, 3.5, "hello" // int float64 string
默认类型
就像上面例子中,右侧表达式是字面量,它们会被转换成默认类型。常见的字面量对应的默认类型:
- boolean 类型:
bool
- 整数类型:
int
- 字符类型:
rune
- 浮点数类型:
float64
- 复数类型:
complex128
- 字符串类型:
stirng
package main
import (
"fmt"
)
func main() {
var a, b = true, "a" > "b" // bool, bool
var c, d = 1, 'w' // int, rune
var e, f = 3.2, 1 - 0.707i // float64, complex128
var g = "hi" // string
// bool bool int int32 float64 complex128 string
fmt.Printf("%T %T %T %T %T %T %T", a, b, c, d, e, f, g)
}
参考资源:
- https://tour.go-zh.org/basics/9
- https://golang.google.cn/ref/spec#Variable_declarations
- https://golang.google.cn/ref/spec#Constants
- https://golang.google.cn/ref/spec#Constant_expressions