登录
首页 >  Golang >  Go问答

Go中接口的使用

来源:Golang技术栈

时间:2023-03-03 13:15:57 144浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《Go中接口的使用》,主要内容是讲解golang等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我想通过一个 简单 的例子来理解接口类型,它在 Go(语言)中的使用。

我阅读了网络文档,但我不明白。

正确答案

go 接口背后的想法是鸭子类型。简单来说就是:如果你看起来像鸭子,嘎嘎嘎嘎叫,那么你就是鸭子。这意味着如果您的对象实现了鸭子的所有功能,那么将其用作鸭子应该没有问题。这是一个例子:

package main

import (
    "fmt"
)

type Walker interface {
    Walk() string
}

type Human string
type Dog string

func (human Human) Walk() string { //A human is a walker
    return "I'm a man and I walked!"
}

func (dog Dog) Walk() string { //A dog is a walker
    return "I'm a dog and I walked!"
}

//Make a walker walk
func MakeWalk(w Walker) {
    fmt.Println(w.Walk())
}

func main() {
    var human Human
    var dog Dog
    MakeWalk(human)
    MakeWalk(dog)
}

这里 aHuman是 aWalker并且 aDog是 a Walker。为什么?因为他们俩……嗯Walk…… 它们都实现了该Walk () string功能。所以这就是你可以MakeWalk对它们执行的原因。

当您希望不同的类型以相同的方式运行时,这非常有用。一个实际的例子是文件类型对象(套接字、文件对象)——您需要对所有这些对象具有写入和读取功能。然后,您可以以与类型无关的相同方式使用 Write 和 Read - 这很酷。

好了,本文到此结束,带大家了解了《Go中接口的使用》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>