课程名称: Go开发工程师全新版
课程章节: 3-1 如何定义变量
课程讲师: bobby
课程内容:
go 是静态语言,静态语言和动态语言相比变量差异很大
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)
}
课程收获:
- var 关键字定义变量
- 全局遍历和局部遍历的定义
- 定义变量的一些注意事项
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦