课程名称: Go开发工程师全新版
课程章节: 3-1 如何定义变量
课程讲师: bobby
课程内容:
go 是静态语言,静态语言和动态语言相比变量差异很大
变量必须先定义后使用(局部变量)
变量必须有类型
类型定下来后不能改变
使用 var 关键子定义变量:var [变量名] [变量类型] = [变量值]
先定义变量再赋值
package main func main() { // 定义变量name,类型是 int 类型 var name int // 赋值,这里的值要和定义的变量类型一致 name = 1 }
定义变量并赋初始值
定义一个变量并 赋初始值时 变量类型可以省略。单独定义不能省略 变量类型
package main func main() { var name int = 1 // 定义一个变量并赋初始值时 变量类型可以省略,如下 var age = 1 // 单独定义不能省略 变量类型 var name // 错误写法 }
在一个 var 中定义多个变量
package main func main() { var ( name string = "bobby" // 写全 age = 12 // 赋值的简写 ok bool // 不赋值,需要写类型 ) }
使用 :=
可以更简单的 定义变量 并 赋初始值【简洁变量定义】
:=
赋值符号可以省略 var 关键字注意:
- 简洁变量定义不能在 全局 中
:=
是定义变量并赋初始值不是赋值,赋值使用=
不需要加:
package main age := 1 // 错误,不能在全局中这样写 func main() { age := 1 }
一行定义多个变量
package main import "fmt" func main() { // 多变量定义,类型一致 var user1, user2, user3 string // 这里赋初始值 var user1, user2, user3 = ”bobby1“, 1, "bobby3" }
定义变量的一些注意事项
变量必须先定义才能使用
package main import "fmt" func main() { fmt.Print(user) //错误,不能使用未定义的变量 }
go语言是静态语言,要求变量的类型和赋值类型一致
package main import "fmt" func main() { var address string = 1 // 错误,定义的类型 和 赋值的类型不一致 }
同一代码快变量名不能冲突
全局的变量名 可以和 局部变量名 重名,但优先级是 局部变量 > 全局变量
package main import "fmt" var age = 1 func main() { age := 1 age = “bobby” // 错误,同一代码快变量名冲突 }
简洁变量定义不能用于全局变量
package main import "fmt" var age = 1 age := 1 // 错误,简洁变量定义不能用于全局变量 func main() { age := 1 age = “bobby” // 错误,同一代码快变量名冲突 }
变量不赋初始值的话是有默认值的,每个类型默认值不一样
package main import "fmt" func main() { var age int var age2 string fmt.Print(age) // 值为 0 fmt.Print(age2) // 值为 ‘’ }
定义了局部变量一定要使用,否则会报错
package main func main() { var age int // 错误,没有使用 }
变量分为 全局变量 和 局部变量。
全局变量:写在在 main 函数外面**
局部变量:写在在 main 函数里面,局部变量必须使用
package main import 'fmt' // 全局变量 var name = “bobby” func main() { // 局部变量 var age = 1 // 使用局部变量 fmt.Print(age) }
需要注意:go语言中定义局部变量后必须使用,全局变量可以不使用
package main import 'fmt' // 定义全局变量后可以不使用 var name = “bobby” func main() { //定义局部变量必须使用 age := 1 // 使用局部变量 fmt.Print(age) }
课程收获: