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

本文深入探讨Go语言的函数和方法,讲解闭包的概念,如何形成不同实例。同时阐述了作用域、多返回值及变长参数的特性,强调了Go中值传递的本质。另外,详细介绍了Go的defer关键字,以及方法和接口的运用。接口在Go中以动态类型和动态值的形式存储,提供了一种动态多态性。反射作为高级特性,使得在运行时检查和修改程序的行为成为可能。
摘要由CSDN通过智能技术生成
第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 反射 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值