1.4 Go微服务实战(Go语言基础) --- 函数方法接口和反射

Posted enlyhua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.4 Go微服务实战(Go语言基础) --- 函数方法接口和反射相关的知识,希望对你有一定的参考价值。

第4章 函数、方法、接口和反射 
4.1 函数 
	4.1.1 函数的定义 
	4.1.2 闭包 
		Go语言中的闭包就是引用了自由变量的函数,被引用的自由变量同函数一直存在,即时离开了自由变量的环境也不会被释放和删除。闭包中可以
	继续使用这个变量。

		函数+引用环境=闭包

		统一函数与不同引用环境的组合,可以形成不同的实例。

		闭包会把函数和所访问的变量组合在一起,不再关心这个变量原来的作用域,闭包本身可以看做是独立对象。闭包函数与普通函数最大的区别
	在于参数不是值传递,而是引用传递,所以闭包可以操作自己函数以外的变量。

	4.1.3 作用域 
	4.1.4 多返回值及变长参数 
		Go语言中,函数的参数只能进行值传递,不能引用传递。虽然可以使用指针,但是本质上传递的还是指针指向的地址,因为访问的是地址内的值,
	所以会被误认为是引用传递。比如,切片会让人觉得函数在处理切片时使用的是引用传递,其实是因为切片里包含地址,所以可以直接访问。此外,
	切片包含的长度和容量也是通过值传递传到函数内的,如果在函数内修改了长度和容量,函数外的切片是接收不到的,所以需要返回一个切片,也是
	基于这个原因,append函数才会每次返回切片。

	4.1.5 defer关键字 

4.2 方法 
4.3 接口 
	接口的值是如何存储的?接口的类型包括两个部分,即一个具体类型和该类型的一个值,分别称为动态类型和动态值。为什么称为动态类型和动态值呢?
这是因为Go语言作为一种静态语言,经过编译后就没有严格意义上的类型值了,所以需要通过类型描述来描述类型的具体信息,以提供给编译器使用。
	
	接口类型的值(简称接口值)包括动态类型和动态值,也就是说在编译阶段并不知道具体的类型和值,而是在程序执行到此时再通过动态类型和动态值去
调用具体的方法。

4.4 反射 

以上是关于1.4 Go微服务实战(Go语言基础) --- 函数方法接口和反射的主要内容,如果未能解决你的问题,请参考以下文章

3.21 Go微服务实战(微服务实战) --- 持续交付

3.21 Go微服务实战(微服务实战) --- 持续交付

2.9 Go微服务实战(Go语言基础) --- Go Web编程

1.2 Go微服务实战(Go语言基础) --- 基本数据类型

1.6 Go微服务实战(Go语言基础) --- 包和代码测试

1.5 Go微服务实战(Go语言基础) --- 并发编程