我有一个Go界面:

type People interface {
    GetName() string
    GetAge() string
}

现在我想要另一个界面Student:

1.

type Student interface {
    GetName() string
    GetAge() string
    GetScore() int
    GetSchoolName() string
}

但是我不想写复制函数GetNameGetAge.

有没有办法避免在Student接口中写入GetNameGetAge?喜欢:

2.

type Student interface {
    People interface
    GetScore() int
    GetSchoolName() string
}

推荐答案

您可以嵌入接口类型.请看Interface type specification

type Student interface {
    People
    GetScore() int
    GetSchoolName() string
}

Go相关问答推荐

为什么Slices包中的函数定义Slice参数的类型参数?

转到http服务器头内容-类型设置为多部分/表单-数据,但在客户端获取内容-类型:文本/纯文本

提供的client_secret与此帐户上任何关联的SetupIntent都不匹配

JWT 如何解析声明有效性和错误?

如果第一次匹配条件,如何跳过切片中的值

`docker system df` 与 `/system/df` (docker api 端点)

在多个 struct 体中重用 Go 中的函数

htmx 表单 + gin 无法正确读取请求正文

如何从 Go Lambda 函数返回 HTML?

这是实现超时的常见方法,为什么 time.After 不起作用

git ls-remote 成功而 go get 失败

如何测试光纤参数

动态 SQL 集 Golang

在我的情况下,如何以正确的方式测试方法?

在 docker kill --signal=SIGX 上以这种方式关闭容器内运行的 go 应用程序是否安全?

K8s 算子读取原始数据

如何使用带有Electron 表格 ID、Electron 表格名称、表格 ID 和值的 golang 在 googlesheet 中插入数据

函数的递归调用以 goroutine 和惯用方式开始,以在所有工作 goroutine 完成时继续调用者

如何在 Go 中使用 Pact 返回错误请求(400、500)?

Go Flag 用法 描述 包含 Word 值