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 ...