go 函数的作用域及可见性
1.全局变量,在程序整个生命周期有效
比如:
test.go 中 我们定义 了 a 作为全局变量,那么在这个程序中任何地方都可以调用a, 这个
var a int =
2. 局部变量,分为两种:1)函数内定义,2)语句块内定义。
func add(a int, b int) int {
var sum int =
//sum是局部变量 函数内定义
if a > {
var c int = 100
//c是布局变量,尽在if语句块有效 语句块里面定义
}
}
举例
package main import (
"fmt"
"zhangyue/res/listen6/可见性"
) func main() {
sum := 可见性.Add(, )
fmt.Printf("cacl Add return %d\n", sum) // sub := 可见性.sub(200,100) // 报错 说明 小写是私有的 只能在包内使用 不能在保外使用
// fmt.Printf("cacl sub return %d\n", sub) fmt.Printf(" cacl A is %d \n", 可见性.A)
// fmt.Printf(" cacl a is %d \n", 可见性.a) // 报错 // 如果想得到小a 可用下面这种方法
a := 可见性.Test()
fmt.Printf(" cacl a is %d \n", a)
}
可见性
可见性,包内任何变量或函数都是能访问的。包外的话,首字母大写是可导出的,能够被其他包访问或者调用,小写表示是私有的,不能被外部包访问或调用
func add(a int, b int) int {
}
//add这个函数只能在包内部调⽤,是私有的,不能被外部的包调⽤
举例
代码 结构

可见性/cacl.go
package 可见性
// 大写能被外部的包引用 小写 说明是私有的 只能在本包里面被调用 (本包里面的所有.go都可调用) var a=
var A = func Add(a, b int) int {
return a+b
} func sub(a, b int) int {
return a - b
}
可见性/test.go
package 可见性
func Test() int {
return a
}
可见性测试/test.go
package main import (
"fmt"
"zhangyue/res/listen6/可见性"
) func main() {
sum := 可见性.Add(, )
fmt.Printf("cacl Add return %d\n", sum) // sub := 可见性.sub(200,100) // 报错 说明 小写是私有的 只能在包内使用 不能在保外使用
// fmt.Printf("cacl sub return %d\n", sub) fmt.Printf(" cacl A is %d \n", 可见性.A)
// fmt.Printf(" cacl a is %d \n", 可见性.a) // 报错 // 如果想得到小a 可用下面这种方法
a := 可见性.Test()
fmt.Printf(" cacl a is %d \n", a)
}
go 函数的作用域及可见性的更多相关文章
- C/C++:作用域、可见性与生存期
作用域 作用域是用来表示某个标识符在什么范围内有效. C++的作用域主要有四种:函数原型作用域.块作用域.类作用域和文件作用域. 由大到小:文件作用域>类作用域>块作用域>函数原型作 ...
- (C/C++学习笔记) 三. 作用域和可见性
三. 作用域和可见性 ● 标识符的作用域 标识符的作用域是标识符在程序源代码中的有效范围,从小到大分为函数原型作用域.块作用域(局部作用域),文件作用域(全局作用域). 1. 函数原型作用域 函数原型 ...
- C++标识符的作用域与可见性
一.标识符的作用域与可见性 作用域讨论的是标识符的有效范围,可见性讨论的是标识符是否可以被引用. 二.作用域 作用域是一个标识符在程序正文中有效的区域.C++中标识符的作用域有函数原型作用域.局部作用 ...
- C++的标识符的作用域与可见性
下面是关于C++的标识符的作用域与可见性学习记录,仅供参考 标识符的作用域与可见性 作用域是一个标识符在程序正文中有效的区域. 作用域分类 ①函数原型作用域 ②局部作用域(快作用域) ③类作用域 ④文 ...
- JavaScript基础学习-函数及作用域
函数和作用域是JavaScript的重要组成部分,我们在使用JavaScript编写程序的过程中经常要用到这两部分内容,作为初学者,我经常有困惑,借助写此博文来巩固下之前学习的内容. (一)JavaS ...
- JavaScript变量的作用域和函数的作用域的区别
变量作用域和函数作用域都涉及到变量值的变化,本文旨在让大家明白他们之间的区别 变量的作用域: 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接 ...
- 【C语言入门教程】5.2 函数的作用域规则(auto, static)
作用域规则是指代码或数据的有效使用范围.C语言将函数作为独立的代码块,函数之间不能相互访问其内部的代码或数据.函数间数据的传递只能通过接口实现.但是,变量的定义方法可改变函数的作用域规则,可将变量分为 ...
- [译]JavaScript:函数的作用域链
原文:http://blogs.msdn.com/b/jscript/archive/2007/07/26/scope-chain-of-jscript-functions.aspx 在JavaScr ...
- 函数变量作用域(python)
收集参数:该参数个数不确定 >>> def test(*params): print('参数的长度是:', len(params)); print('第二个参数是:', params ...
随机推荐
- 【转】关于在vim中的查找和替换
1,查找 在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车. Vim会跳转到第一个匹配.按下n查找下一个,按下N查找上一个. Vim查找支持正则表达式,例如/vim$匹配行尾的 ...
- 【bzoj2034】 2009国家集训队—最大收益
http://www.lydsy.com/JudgeOnline/problem.php?id=2034 (题目链接) 题意 n个任务,每个任务只需要一个时刻就可以完成,完成后获得${W_i}$的收益 ...
- CentOS7防火墙firewalld使用
1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status f ...
- 1044 Shopping in Mars
Shopping in Mars is quite a different experience. The Mars people pay by chained diamonds. Each diam ...
- js基础之DOM中document对象的常用属性方法
-----引入 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1 document.an ...
- python基础之赋值/深copy/浅copy
首先,不管是赋值还是深浅copy,都是针对那些可能会产生变化的值进行区分的,也就是对于数字,字符串来说,区分赋值,深浅copy是毫无意义的. 那么,让我们来对那些可变的像list set dict t ...
- sys模块python
sys模块 1: sys是python自带模块. 利用 import 语句输入sys 模块. 当执行import sys后, python在 sys.path 变量中所列目录中寻找 sys 模块文件. ...
- Hadoop生态圈-phoenix的视图(view)管理
Hadoop生态圈-phoenix的视图(view)管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Java基础-Calendar类常用方法介绍
Java基础-Calendar类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Calendar类概念 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 Y ...
- bzoj千题计划132:bzoj1189: [HNOI2007]紧急疏散evacuate
http://www.lydsy.com/JudgeOnline/problem.php?id=1189 二分答案 源点向人连边,流量为1 门拆为mid个点,同一个门的第j个点向第j+1个点连边,流量 ...