go語言buffio與繼承

2021-10-11 18:43:07 字數 1367 閱讀 7609

buffio比較簡單,主要就是對io一類的操作,第乙個例子中順帶加上了go語言中繼承的實現,因為go不是面相物件的語言,更準確的來說是面相介面程式設計的語言,因此繼承的實現其實就是將另外乙個結構體合併到自己的結構體中,

package main

import

("bufio"

"fmt"

"os"

)type animal struct

type dog struct

func

(a *animal)

animalinit()

error

func

(d *dog)

watch()

error

func

main()

// 函式退出之前會呼叫defer函式

defer file.

close()

// 建立reader物件,用於從檔案中讀取資料

b1 := bufio.

newreader

(file)

p :=

make([

]byte

,1024

) n1, err := b1.

read

(p) fmt.

println

(n1)

fmt.

println

(string

(p[:n1]))

var adog dog

adog.eye =

2 adog.watch =

"wang wang"

adog.foot =4_

= adog.

watch()

}

package main

import

("bufio"

"fmt"

"io"

"log"

"os"

)func

main()

defer file.

close()

// 建立reader物件

filereader := bufio.

newreader

(file)

// 這裡可以加個for迴圈,知道err == io.eof跳出迴圈

filebuff, isprefix, err := filereader.

readline()

if err !=

nil}

fmt.

println

(string

(filebuff)

, isprefix, err)

}

go 語言中的繼承

go 語言中可以通過匿名field來實現繼承的效果,type t1 struct func t t1 log func t t1 print type t2 struct t2 t2 可以通過t2.log 直接訪問t1的method,就像物件導向的繼承之後一樣訪問,不過這裡要注意的傳遞到log的是t...

go語言cgo C與Go互調

見 foo.h void foo void callgo void hello void print x char str foo.c gcc c foo.c ar rv libfoo.a foo.o include foo.h include stdio.h include obj cgo exp...

go 語言 struct 另類建構函式 繼承

1.go 中struct 沒有建構函式,但是可以使用另一種方式來構造。type school struct func newschool name,addr string school func testnewschool func main 執行結果 2.匿名函式實現繼承 type people ...