標籤:erro spl 思路 nil pac int 種類型 存在 error
Go語言聖經-介面
1.介面類型是對其它類型行為的抽象和概括
2.Go語言中介面類型的獨特之處在於它是滿足隱式實現的
3.Go語言中還存在著另外一種類型:介面類型。介面類型是一種抽象的類型
4.一個類型可以自由的使用另一個滿足相同介面的類型來進行替換被稱作可替換性(LSP裡氏替換)
練習 7.1: 使用來自ByteCounter的思路,實現一個針對對單詞和行數的計數器。你會發現bufio.ScanWords非常的有用。
package mainimport ( "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 }
[日常] Go語言聖經--介面約定習題