ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 1.语法 Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。并且Go语言的变量声明后必须使用 Go语言的变量声明格式为: ~~~ var 变量名 变量类型 ~~~ 示例: ~~~ var name string var age int var isOk bool ~~~ ### 1.1批量声明 每声明一个变量就需要写`var`关键字会比较繁琐,go语言中还支持批量变量声明: ``` var ( name string age int weight float64 ) ``` ### 1.2 变量的初始化 Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值,例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为`false`。 切片、函数、指针变量的默认为`nil` 当然我们也可在声明变量的时候为其指定初始值。变量初始化的标准格式如下: ~~~ var 变量名 类型 = 表达式 ~~~ 举个例子: ~~~ var name string = "pprof.cn" var sex int = 1 ~~~ 或者一次初始化多个变量 ~~~ var name, sex = "pprof.cn", 1 ~~~ ### 1.3 类型推导 有时候我们会将变量的类型省略,这个时候编译器会根据等号右边的值来推导变量的类型完成初始化 ~~~ var name = "pprof.cn" var sex = 1 ~~~ ## 1.4 简短申明 Go 也支持一种声明变量的简洁形式,称为简短声明(Short Hand Declaration),该声明使用了:=操作符 声明变量的简短语法是 ``` name := initialvalue ``` 示例: ~~~ n := 10 m := 200 // 此处声明局部变量m fmt.Println(m, n) ~~~ *注意:* * 简短声明要求\*\*:=\*\*操作符左边的所有变量都有初始值 * 简短声明的语法要求\*\*:=\*\*操作符的左边至少有一个变量是尚未声明的 ### 1.5 匿名变量 在使用多重赋值时,如果想要忽略某个值,可以使用`匿名变量(anonymous variable)`。 匿名变量用一个下划线\_表示,例如: ~~~ func foo() (int, string) { return 10, "Q1mi" } func main() { x, _ := foo() _, y := foo() fmt.Println("x=", x) fmt.Println("y=", y) } ~~~ 匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 (在Lua等编程语言里,匿名变量也被叫做哑元变量。) ##与其他编程语言的差异 赋值可以进行自动类型推断 在一个赋值语句中可以对多个变量进行同时赋值 ***** 【知识点】 ~~~ 1.函数外的每个语句都必须以关键字开始(var、const、func等) 2.:=不能使用在函数外。 3._多用于占位,表示忽略值。 ~~~