Golang 教程
Golang 控制语句
Golang 函数 & 方法
Golang 切片 & 数组
Golang 结构体
Golang 字符串
Golang 接口
Golang 指针
Golang 并发
Golang 异常(Error)
Golang 其他杂项

Go 语言多个接口

时间:2023年06月10日 阅读:211
以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!
淘客轩-衣食住行外卖生活好助手

在Go语言中,接口是方法签名的集合,它也是一种类型,意味着您可以创建接口类型的变量。在Go语言中,您可以借助给定的语法在程序中创建多个接口:

type interface_name interface{

//方法签名

}

注意:在Go语言中,不允许在两个或多个接口中创建相同的名称方法。如果尝试这样做,则您的程序将崩溃。让我们借助示例来讨论多个接口。

//多个接口的概念
package main

import "fmt"

// 接口 1
type AuthorDetails interface {
    details()
}

// 接口 2
type AuthorArticles interface {
    articles()
}

// 结构体
type author struct {
    a_name    string
    branch    string
    college   string
    year      int
    salary    int
    particles int
    tarticles int
}

//实现接口方法1
func (a author) details() {

    fmt.Printf("作者: %s", a.a_name)
    fmt.Printf("\n部分: %s 通过日期: %d", a.branch, a.year)
    fmt.Printf("\n学校名称: %s", a.college)
    fmt.Printf("\n薪水: %d", a.salary)
    fmt.Printf("\n出版文章数: %d", a.particles)

}

// 实现接口方法 2
func (a author) articles() {

    pendingarticles := a.tarticles - a.particles
    fmt.Printf("\n待定文章: %d", pendingarticles)
}

// Main value
func main() {

    //结构体赋值
    values := author{
        a_name:    "Mickey",
        branch:    "Computer science",
        college:   "XYZ",
        year:      2012,
        salary:    50000,
        particles: 209,
        tarticles: 309,
    }

    // 访问使用接口1的方法
    var i1 AuthorDetails = values
    i1.details()

    //访问使用接口2的方法
    var i2 AuthorArticles = values
    i2.articles()

}

输出:

作者: Mickey
部分: Computer science 通过日期: 2012
学校名称: XYZ
薪水: 50000
出版文章数: 209
待定文章: 100

用法解释:如上例所示,我们有两个带有方法的接口,即details()和Articles()。在这里,details()方法提供了作者的基本详细信息,而articles()方法提供了作者的待定文章。

还有一个名为作者(Author)的结构,其中包含一些变量集,其值在接口中使用。在主要方法中,我们在作者结构中分配存在的变量的值,以便它们将在接口中使用并创建接口类型变量以访问AuthorDetailsAuthorArticles接口的方法。

打赏

本文地址:https://www.momojc.cn/golang/go-multiple-interfaces.html

关于本站 | 隐私政策 | 免责声明 | 广告合作 | 我要投稿 | 后台管理

CopyRight © 2023-2024 MOMO教程 WWW.MOMOJC.CN , All Rights Reserved.

站长E-mail:378074730@qq.com 网站已运行:  运行时长:0.038 秒

京ICP备20029690号-1京ICP备20029690号-2 京公网安备11011402013892号京公网安备11011402013892号 中国互联网违法和不良信息举报中心 网络违法犯罪举报网站

本网站托管于 腾讯云 .由网站卫士提供网站加速和攻击防御服务 提供CDN加速/防御服务.由zblogcn强力驱动 又拍云提供CDN加速/云存储服务 51la网站统计