Go基础编程:作用域
来源:互联网 发布:win10网络图标红叉 编辑:程序博客网 时间:2024/06/16 15:54
作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。
局部变量
在函数体内声明的变量、参数和返回值变量就是局部变量,它们的作用域只在函数体内:
func test(a, b int) { var c int a, b, c = 1, 2, 3 fmt.Printf("a = %d, b = %d, c = %d\n", a, b, c)}func main() { //a, b, c = 1, 2, 3 //err, a, b, c不属于此作用域 { var i int i = 10 fmt.Printf("i = %d\n", i) } //i = 20 //err, i不属于此作用域 if a := 3; a == 3 { fmt.Println("a = ", a) } //a = 4 //a在能if内部使用}
全局变量
在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。
var a int //全局变量的声明func test() { fmt.Printf("test a = %d\n", a)}func main() { a = 10 fmt.Printf("main a = %d\n", a) //main a = 10 test() //test a = 10}
不同作用域同名变量
在不同作用域可以声明同名的变量,其访问原则为:在同一个作用域内,就近原则访问最近的变量,如果此作用域没有此变量声明,则访问全局变量,如果全局变量也没有,则报错。
var a int //全局变量的声明func test01(a float32) { fmt.Printf("a type = %T\n", a) //a type = float32}func main() { fmt.Printf("a type = %T\n", a) //a type = int, 说明使用全局变量的a var a uint8 //局部变量声明 { var a float64 //局部变量声明 fmt.Printf("a type = %T\n", a) //a type = float64 } fmt.Printf("a type = %T\n", a) //a type = uint8 test01(3.14) test02()}func test02() { fmt.Printf("a type = %T\n", a) //a type = int}
阅读全文
0 0
- Go基础编程:作用域
- Go编程基础—import下划线的作用
- Go基础编程:包
- Go基础编程:基础数据类型
- Go-作用域
- Go Web编程一: Go Web 基础
- Go编程基础—go常用命令
- Go基础编程:Go语言介绍
- Go基础编程:第一个Go程序
- Go语言编程基础01
- Go语言编程基础2
- Go Web编程:Web基础
- Go编程基础—常量
- Go编程基础—格式化
- Go基础编程:环境搭建
- Go基础编程:运算符
- Go基础编程:流程控制
- Go基础编程:自定义函数
- Java实训——编写一个窗体应用程序模拟交通信号灯。
- JAVA AOP
- 【POJ
- 关于文件压缩的代码
- 对象式宏 object-like macro
- Go基础编程:作用域
- HTML5JavaScript----1.点击显示对话框2.跳转到另一个网页3.记录历史
- Spring + DbUnit 测试
- LINUX的LVM使用
- tomcat配置访问项目时不需要添加项目名称
- eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文
- 假的2048
- Jackson的ObjectMapper类简单使用
- 5.2 Array类型