go的interface怎么实现的?

简介: 面试题:go的interface怎么实现的?

在Go语言中,接口(interface)是一种类型,它定义了一组方法的签名。接口提供了一种方式,可以将对象的行为与其具体类型分离开来,并允许不同类型的对象实现相同的接口。

要定义一个接口,可以使用 type 关键字,后面跟着接口的名称和方法列表。方法列表中包含了接口定义的所有方法的签名。

下面是一个示例,展示了如何在Go语言中定义和实现接口:

package main

import "fmt"

// 定义一个接口
type Shape interface {
   
    Area() float64
    Perimeter() float64
}

// 定义一个结构体类型 Circle
type Circle struct {
   
    radius float64
}

// Circle 类型实现 Shape 接口的 Area 方法
func (c Circle) Area() float64 {
   
    return 3.14 * c.radius * c.radius
}

// Circle 类型实现 Shape 接口的 Perimeter 方法
func (c Circle) Perimeter() float64 {
   
    return 2 * 3.14 * c.radius
}

func main() {
   
    // 创建一个 Circle 对象,并将其赋值给 Shape 接口类型的变量
    var shape Shape
    shape = Circle{
   radius: 5}

    // 调用接口方法
    fmt.Println("Area:", shape.Area())
    fmt.Println("Perimeter:", shape.Perimeter())
}

这就是在Go语言中实现接口的基本方法。通过接口,我们可以实现多态性和代码复用,使得程序更加灵活和可扩展。

目录
相关文章
|
2月前
|
Go
|
5月前
|
Go
go interface 使用
go interface 使用
28 0
|
7月前
|
Go
Go语言学习之 interface
Go语言学习之 interface
18 0
|
10月前
|
存储 缓存 Go
如何用好 Go interface
The bigger the interface, the weaker the abstraction.
66 0
|
10月前
|
Go
Go Interface 合法验证
- 值方法集和接口匹配 - 给接口变量赋值的不管是值还是指针对象,都ok,因为都包含值方法集 - 指针方法集和接口匹配 - 只能将指针对象赋值给接口变量,因为只有指针方法集和接口匹配 - 如果将值对象赋值给接口变量,会在编译期报错(会触发接口合理性检查机制)
|
Go Android开发 Python
实证与虚无,抽象和具象,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang接口(interface)的使用EP08
看到接口这两个字,我们一定会联想到面向接口编程。说白了就是接口指定执行对象的具体行为,也就是接口表示让执行对象具体应该做什么,所以,普遍意义上讲,接口是抽象的,而实际执行行为,则是具象的。
实证与虚无,抽象和具象,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang接口(interface)的使用EP08
|
存储 Java Go
速学Go语言接口interface
速学Go语言接口interface
|
Go
go语言map[string]string 转map[string]interface{}
go语言map[string]string 转map[string]interface{}
598 0
|
存储 Java Go
go的interface
go的interface
58 0
|
Java Go 数据安全/隐私保护
Go 编程 | 连载 18 - 接口 Interface
Go 编程 | 连载 18 - 接口 Interface
Go 编程 | 连载 18 - 接口 Interface