golang中接口类型小案例

1.  在项目中实现注册成功之后,向用户发送邮件、微信提醒

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main
 
import "fmt"
 
type IMessage interface {
    send() bool
}
 
type Email struct {
    email string
    content string
}
func (e *Email) send() bool {
    fmt.Println("发送邮件提醒:", e.email, e.content)
    return true
}
 
type Wechat struct {
    wid int
    content string
}
func (w *Wechat) send() bool {
    fmt.Println("发送微信提醒:", w.wid, w.content)
    return true
}
 
func DoSomething(messageSlice []IMessage) {
    for _, item := range messageSlice {
        ret := item.send()
        fmt.Println(ret)
    }
}
 
func main() {
    // 在项目中实现注册成功之后,向用户发送邮件、微信提醒
    messageSlice := []IMessage{
        &Email{email: "1341935532@qq.com", content: "邮件提醒"},
        &Wechat{wid: 110, content: "微信提醒"},
    }
    DoSomething(messageSlice)
}

  

posted @   专职  阅读(43)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示