[GoLang避坑实战-04] 变量也玩"躲猫猫"?揭秘 Go 类型系统里那些隐蔽的坑
大家好,我是极客老墨! 从 Java 或 Python 转 Go 的时候,我在变量声明这块卡了好一会儿。 不是说 Go 的变量有多复杂,而是它给了你好几种声明方式。var 和 := 到底啥区别?类型推导怎么玩?指针和 Java 有啥不同?常量还能玩出花来? 这篇文章一次讲透。 变量声明:var 和 := Go 有两种主要声明变量的方式。 用 var 声明 这是最"正统"的写法,适合先声明、后赋值的场景: 1// 声明单个变量 2var name string 3name = "Go" 4 5// 声明时直接赋值(类型可省略) 6var age = 18 // Go 自动推导为 int 7 8// 批量声明 9var ( 10 x int 11 y float64 12 z bool 13 s string 14) 用 := 声明 这是 Go 的语法糖,声明 + 赋值一步到位: 1// 必须初始化,Go 自动推导类型 2message := "Hello, Go!" 3fmt.Println(message) 4 5// 接收函数返回值 6result, err := someFunc() 什么时候用哪个? 用 var 的场景: ...