亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第4天 go語言接口的組合、函數式編程

標簽:
Go

课程名称GO开发工程师

课程章节:1-5接口的组合;1-6常用的系统接口;2-1函数式编程

课程讲师ccmouse

课程内容

  1. 接口的组合
    使用者定义接口以及接口里的方法;使用者还可以将接口组合成新的接口;
    实现者只管方法的实现,不关心外部使用者的接口类型以及接口的组合形式。
    使用者组合示例代码:
 type Retriever interface {
	Get(url string) string
}
type Poster interface {
	Post(url string, form map[string]string) string
}
// RetrieverPoster 接口组合(兼具Retriever与Poster的功能)
type RetrieverPoster interface {
	Retriever
	Poster
}。

实现者方法实现示例:

// package mock
type Retriever struct {
	Content string
	Url     string
}
func (r *Retriever) String() string {
	return fmt.Sprintf("{ Content: %s }", r.Content)
}
// 实现Post
func (r *Retriever) Post(url string, form map[string]string) string {
	r.Url = url
	r.Content = form["student"]
	return "mock ok"
}
// 实现Get
func (r *Retriever) Get(url string) string {
	return r.Content
}
  1. 常用系统接口
    格式化字符串:fmt.Stringer();
    构造字符串Readder: strings.NewReader()
    除了字符串的Reader/Writer还有字节的Reader/Writer等其它的Reader(抽象为可读)/Writer(抽象为可写)
    例如:字节Readder:bytes.NewReader();ZIP Writter: zip.NewWriter()
  2. 函数式编程
    参数、返回值均可以用函数。
  3. 闭包:函数引用函数外部的参数。

课程收获

  1. 使用者可以根据不同的业务需求灵活的组合接口,而实现者完全不用关心。
  2. 抽象Readder(文件、字符串、网络…)、抽象Writtrer(ZIP、CSV、ZIP…)
  3. Printf : 只可以打印出格式化的字符串。
    Sprintf:格式化并返回一个字符串而不带任何输出。
    Fprintf:来格式化并输出到 io.Writers 而不是 os.Stdout。
    图片描述

图片描述

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消