加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang interface用法

发布时间:2020-12-16 18:53:28 所属栏目:大数据 来源:网络整理
导读:接口是一个或多个方法签名的集合,任何类型的方法集中只要拥有与之对应的全部方法, 就表示它"实现"了该接口无须在该类型上显式添加接口声明。 所谓对应方法,是指有相同名称、参数列表 (不包括参数名) 以及返回值。当然,该类型还 可以有其他方法。 (1)接口


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

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

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

packagemain
import"fmt"

typeCodeMonkeyinterface{
codingEveryday()string
}

typeParentinterface{
washingDiaper()string
}

typePersonstruct{
idint
namestring
}

func(self*Person)codingEveryday()string{
returnfmt.Sprintf("user%d,%swritebugeveryday.",self.id,self.name)
}

func(self*Person)washingDiaper()string{
returnfmt.Sprintf("user%d,%stakecareofhisbaby.",self.name)
}

funcmain(){
varmonkeyCodeMonkey=&Person{1,"Tom"}
fmt.Println(monkey.codingEveryday())

varfatherParent=&Person{2,"John"}
fmt.Println(father.washingDiaper())
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读