当前位置: 技术文章>> go中的方法集详细介绍与代码示例

文章标题:go中的方法集详细介绍与代码示例
  • 文章分类: 后端
  • 10777 阅读
文章标签: go go基础

在Go语言中,方法集(Method Set)是一种与特定类型关联的函数集合。方法集定义了哪些函数可以作为该类型的成员方法。

方法集可以通过类型的方法接收者(Receiver)来确定。方法接收者定义了该方法与哪个类型相关联,并确定了该方法的访问权限。根据接收者的类型,可以将方法集分为内置方法集和自定义方法集。

  1. 内置方法集:Go语言内置了一些基本类型,如intstringbool等,这些类型有一些预定义的方法。例如,len()函数可以用于获取字符串或切片的长度,make()函数可以用于创建切片或映射等。这些方法通常用于操作基本类型或进行常见的操作。

  2. 自定义方法集:对于自定义类型,可以定义与该类型相关的方法。这些方法可以在类型上执行特定的操作,提供对该类型的额外功能。

下面是一个简单的示例代码,展示了方法集的用法:


package main



import "fmt"  



// 定义一个自定义类型  

type Circle struct {

radius float64  

}



// 定义自定义方法集中的方法  

func (c Circle) Area() float64 {

return 3.14 * c.radius * c.radius

}



// 定义另一个自定义方法集中的方法  

func (c Circle) Perimeter() float64 {

return 2 * 3.14 * c.radius

}



func main() {

// 创建一个Circle对象  

circle := Circle{radius: 2.0}



// 调用自定义方法集中的方法  

fmt.Println("Area:", circle.Area())

fmt.Println("Perimeter:", circle.Perimeter())

}

在上面的代码中,我们定义了一个名为Circle的结构体,并定义了两个与该类型相关联的方法Area()Perimeter()。这两个方法都使用了接收者(c Circle)来指定它们与Circle类型相关联。在main函数中,我们创建了一个Circle对象,并调用了这两个方法来计算圆的面积和周长。


推荐文章