第一种: 基本变数宣告
package mainimport "fmt"func main() {var a int = 1var b float32 = 1.2var c string = "mingsyun"fmt.Printf("a:%T,b:%T,c:%T\n",a,b,c)fmt.Printf("a:%d,b:%.2f,c:%s",a,b,c)}
https://play.golang.org/p/ojZdBJP29d5
第二种:短变数宣告
Golang 使用 := 运算子,提供简短的变数宣告语法。
这个是宣告和初始化变数的简写(包含型别推断,如下第三种)。
package mainimport "fmt"func main() {a := 1b := 1.2c := "mingsyun"fmt.Printf("a:%T,b:%T,c:%T\n",a,b,c)fmt.Printf("a:%d,b:%.2f,c:%s",a,b,c)}
https://play.golang.org/p/Wez6_5S3Ct0
第三种: 自动型别推断
在宣告有初始值的变数时,Golang会自动从右侧的值推断出变数的型别。
因此,在宣告有初始值得变数时,可以不用指定型别。
package mainimport "fmt"func main() {var a = 1var b = 1.2var c = "mingsyun"fmt.Printf("a:%T,b:%T,c:%T\n",a,b,c)fmt.Printf("a:%d,b:%.2f,c:%s",a,b,c)}
https://play.golang.org/p/eRdtp3ktoN6
简易规则:
var < name > < type > = < value >
var < name > := < value >
参考来源:
https://calvertyang.github.io/2019/11/05/golang-variables-zero-values-type-inference/
https://pjchender.github.io/2020/06/04/golang-%E8%AE%8A%E6%95%B8%E5%AE%A3%E5%91%8A/