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 ...
随机推荐
- ADO.NET:C#/SQL Server
1.首次要准备的(工具)是:a.Microsoft Visual Studio Ultimate 2012;b.Microsoft SQL Server Management Studio ; 2.首 ...
- c++11 智能指针 unique_ptr、shared_ptr与weak_ptr
c++11 智能指针 unique_ptr.shared_ptr与weak_ptr C++11中有unique_ptr.shared_ptr与weak_ptr等智能指针(smart pointer), ...
- C++11并发编程个人小结
thread_local变量在每个线程第一次执行到时初始化(类似static),并在每个线程各自累加,并在线程结束时释放. std::condition_variable:: wait(std::un ...
- SSM 小demo的盲点总结
日期Date和String之间的转换: 1. 全局转换器(推荐使用) 1. 创建类实现Converter接口,实现Convert方法 public class StringToDateConvert ...
- eclipse 支持 Robot framework 编辑环境
一.配置python 环境 1. 设置pydev库 打开Help -> Install New Software, 点击'Add',设置Name为“Pydev”,Loca ...
- CSS--overflow和hover
一.Overflow overflow 属性规定当内容溢出元素框时发生的事情. 当插入的一张图片大小超过了元素本身大小,就会将元素撑大 <!DOCTYPE html> <html l ...
- Python面向对象补充以及异常处理
面向对象相关内容 一.isinstance(obj, cls) 检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isinstance(o ...
- Java基础-Collection子接口之Set接口
Java基础-Collection子接口之Set接口 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 学习Collection接口时,记得Collection中可以存放重复元素,也可 ...
- RabbitMQ基础介绍
非原创,仅作为个人的学习资料,转自 anzhsoft http://blog.csdn.net/anzhsoft/article/details/19563091, 1. 历史 RabbitMQ是一个 ...
- linux服务器上没有jar命令
在linux服务器上用jar命令解压jar包时,提示找不到jar命令. 但是用java -version查看jdk版本,又可以显示出jdk版本. echo $JAVA_HOME查看环境变量路径,找不到 ...