zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Go语言圣经–接口约定习题详解编程语言

Go接口语言编程语言 详解 &# 8211 习题
2023-06-13 09:20:37 时间

Go语言圣经-接口
1.接口类型是对其它类型行为的抽象和概括
2.Go语言中接口类型的独特之处在于它是满足隐式实现的
3.Go语言中还存在着另外一种类型:接口类型。接口类型是一种抽象的类型
4.一个类型可以自由的使用另一个满足相同接口的类型来进行替换被称作可替换性(LSP里氏替换)

练习 7.1: 使用来自ByteCounter的思路,实现一个针对对单词和行数的计数器。你会发现bufio.ScanWords非常的有用。

package main 

import ( 

 "bufio" 

 "fmt" 

 "strings" 

func main() { 

 var c WordsCounter 

 fmt.Fprintf( c, "hello world 123") 

 fmt.Println(c) //输出 3 

练习 7.1: 使用来自ByteCounter的思路,实现一个针对对单词和行数的计数器。你会发现bufio.ScanWords非常的有用。 

type ByteCounter int 

func (c *ByteCounter) Write(p []byte) (int, error) { 

 *c += ByteCounter(len(p)) // convert int to ByteCounter 

 return len(p), nil 

//定义类型 

type WordsCounter int 

//满足相同接口的类型 

func (w *WordsCounter) Write(p []byte) (int, error) { 

 //分隔字符串 

 s := strings.NewReader(string(p)) 

 bs := bufio.NewScanner(s) 

 bs.Split(bufio.ScanWords) 

 sum := 0 

 for bs.Scan() { 

 sum++ 

 *w = WordsCounter(sum) 

 return sum, nil 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/12534.html

cgo