理解变量
本章介绍如下内容:
- 变量是什么?
- 快捷变量声明。
- 理解变量和零值。
- 编写间断变量声明。
- 哪种变量声明方式更好?
- 变量作用域
- 使用指针。
- 声明常量。
变量是计算机程序不可或缺的部分。
1.1 变量是什么
变量就是值的引用,是实现程序逻辑的基石之一。在 Go 语言中,声明变量的方式有多种。Go 是一种静态类型语言, 因此声明变量时必须显式或隐式地指定其类型。
程序清单:声明 string 变量
package main import ( "fmt" ) func main() { var s string = "Hello world" fmt.Println(s) }
对程序解读如下:
-
- 1、使用关键字 var 声明一个变量。
- 2、这个变量名为 s。
- 3、这个变量的类型为 string。
- 4、赋值运算符 "=" 表示将它右边的值赋给变量。
- 5、将字符串字面量 Hello World 赋值给变量 s。
- 6、标准库中的 fmt 包通过变量 s 来引用其值,并将这个值传递给方法 Println。
- 7、打印 s 的值。
程序清单:声明变量后再给它赋值
package main import "fmt" func main() { var s string s = "Hello World" fmt.Println(s) }
Go 语言是静态编程语言,变量的类型很重要,因为这决定了可将什么值赋给变量。例如,对于类型为 string 的变量,不能将整数值赋给它;同理,不能将字符串赋给布尔变量。将类型不正确的值赋给变量时,将导致编译错误。现在我们举个错误赋值的例子:
程序清单:将类型不正确的值赋给变量
package main import ( "fmt" ) func main() { var i int i = "ONE" fmt.Println(i) }
1.2 快捷变量声明
Go 支持多种快捷变量声明方式。可在一行内声明多个类型相同的变量并给它们赋值。
程序清单:快捷变量声明
package main import ( "fmt" ) func main() { var s, t string = "foo", "bar" fmt.Println(s) fmt.Println(t) }
程序清单:以快捷方式声明类型不同的变量
package main import ( "fmt" ) func main() { var ( s string = "foo" i int = 4 ) fmt.Println(s) fmt.Println(i) }
变量声明后,就不能再次声明它。虽然可以给变量重新赋值,但不能重新声明变量,否则将导致编译阶段错误。
package main import ( "fmt" ) func main() { var s int = 1 fmt.Println(s) var s string = "Hello World" }
1.3 理解变量和零值