Go 语言入门指南:基础语法和常用特性解析(完结)|青训营

42 阅读1分钟

5.方法

方法只是个带接收者参数的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。下面这个例子是正常写法 func Abs(v Vertex) float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y) }

指针接收者:在函数的形参上加*,这样调用函数的时候就能够改变参数值了

func ScaleFunc(v *Vertex, f float64) { v.X = v.X * f v.Y = v.Y * f } v := Vertex{3, 4} v.Scale(2)

这种就是参数里面有指针类型的时候,可以调用该方法

6.接口

定义:接口是一种类型,是一种抽象的类型

截屏2023-07-31 下午5.25.00.png

哔哩哔哩这个视频链接很不错,我是看这个理解的:www.bilibili.com/video/BV1Gt…

定一个类型,只要会叫就行,猫狗都行,因为他们都会叫。

那么接收者分为值接受和指针接受

1.值接收者是这样的(使用较多)

截屏2023-07-31 下午8.08.36.png

2.指针接收者是这样的:

截屏2023-07-31 下午8.11.08.png

此刻出现问题,原因是指针类型不满足m=p1,也就是不能存到m里面,因为p1是值类型

3.空接口:空接口可保存任何类型的值。(因为每个类型都至少实现了零个方法。)

4.类型与接口的关系:一个类型可以实现多个借口,多个类型可以实现一个借口

5.空接口可以任意实例化