Go语言基础核心:函数、方法与接口的定义及使用

Oliver
Oliver
发布时间:2026-10-16 | 5人浏览过
原创

本文解析Go语言三大核心概念:函数的定义与参数传递;方法的接收者类型选择(值与指针);以及通过隐式满足实现的接口机制与多态应用。

函数定义与使用

每个函数包含名称、形参列表、可选返回值和函数体。在Go中,若返回值为单一类型或无返回值,可省略返回列表的小括号。

func add(a, b int) int {
    return a + b
}

func main() {
    result := add(1, 2)
    fmt.Println(result)
}

调用时传入实参,函数内部执行逻辑并返回结果。对于无需修改外部数据的场景,可直接使用值参数。

方法与接收者

Go没有类(Class),而是通过“方法”绑定在类型上模拟面向对象行为。方法是作用于特定“接收者”(receiver)的函数。

第1步:定义接收者类型

接收者可以是类型本身(值)或其指针。定义格式为:func (recv Type) methodName(params) rets { ... }。

  • 值接收者:操作副本,适用于小型数据结构或不需修改原数据的情况。
  • 指针接收者:操作内存地址,适用于大型结构体或需要修改成员变量的场景。例如 *Square。
type Square struct {
    side float32
}

// 值接收者
func (sq Square) Area() float32 {
    return sq.side * sq.side
}

// 指针接收者
func (s *Square) SetSide(side float32) {
    s.side = side
}

第2步:调用方法

Go会自动解引用指针类型的接收者。调用方式类似于 object.Method()。

sq := &Square{side: 5.0}
fmt.Println(sq.Area()) 
Sq.SetSide(10.0)

如果不需要使用接收者,可以用 _ 占位符替代。

接口与多态

接口是Go实现多态的核心。接口定义了一组方法签名,任何实现了这些方法的类型都自动“隐式”实现了该接口。

第3步:定义接口

约定单方法接口命名以 -er 结尾。

type Namer interface {
    Name() string
}

第4步:实现接口

只需确保类型拥有接口定义的所有方法。无需显式声明 implements。

type Person struct {
    name string
}

func (p Person) Name() string {
    return p.name
}

第5步:空接口 with any

interface{}`` 即 any,不包含任何方法,可接受任意类型的数据。常用于处理通用对象,如JSON解析时的中间状态。

var data any = "hello"
data = 42 
data = true 

第6步:组合多个接口

一个类型可以实现多个接口。接口也可以嵌套继承其他接口的方法集合。这使得代码模块间耦合度极低。

总结

理解函数、方法和接口是使用Go进行开发的基础。掌握值与指针接收者的区别能有效控制性能与行为,而灵活的隐式接口机制则是构建可维护架构的关键。

以上就是Go语言七篇入门教程三函数方法及接口的详细内容,更多关于Go语言函数方法及接口的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表