zoukankan      html  css  js  c++  java
  • golang interface用法

    接口是一个或多个方法签名的集合,任何类型的方法集中只要拥有与之对应的全部方法,
    就表示它"实现"了该接口无须在该类型上显式添加接口声明。

    所谓对应方法,是指有相同名称、参数列表 (不包括参数名) 以及返回值。当然,该类型还
    可以有其他方法。
    (1)接口命名习惯以er结尾结构体。
    (2)接口只有方法签名,没有实现。
    (3)接口没有数据字段。
    (4)可在接口中嵌入其他接口。
    (5)类型可实现多个接口。

    下面举个栗子:
    用例:一个人,他的有两种角色,在公司是程序猿,在家里是孩他爸。在公司当程序猿时就写bug,
    在家当爹时就洗尿布。则其接口和结构体的映射关系为:

    package main
    import "fmt"
    
    type CodeMonkey interface {
        codingEveryday() string
    }
    
    type Parent interface {
        washingDiaper() string
    }
    
    type Person struct {
        id   int
        name string
    }
    
    func (self *Person) codingEveryday() string {
        return fmt.Sprintf("user %d, %s write bug every day.", self.id, self.name)
    }
    
    func (self *Person) washingDiaper() string {
        return fmt.Sprintf("user %d, %s take care of his baby.", self.id, self.name)
    }
    
    func main() {
        var monkey CodeMonkey = &Person{1, "Tom"}
        fmt.Println(monkey.codingEveryday())
    
        var father Parent = &Person{2, "John"}
        fmt.Println(father.washingDiaper())
    }

    摘自:https://studygolang.com/articles/795

  • 相关阅读:
    C# 根据二级栏目Id查询出所属文章的信息列表
    C#网站首页制作MVC
    C#Mvc退出登录
    C#Mvc修改密码
    C#网站开发之内容页Content
    C#Mvc登录功能
    Linux命令——shell
    学习笔记cisco常用命令
    性能相关术语
    Linux命令(一)
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/15511776.html
Copyright © 2011-2022 走看看