type fileLog string
func (fl fileLog) Write(data []byte) (int, error) {
file, err := os.OpenFile(string(fl), os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0600)
if err != nil {
return 0, nil
}
defer file.Close()
return file.Write(data)
}
函式名稱前面的括號是Go定義這些函式將在其上運行的物件的方式,所以,本質上Write是一個型別處理程式的方法,可以使用型別處理程式的任何物件來呼叫fl
類似于Vue的computed, 和Vuex的mutation作用
確切地說是處理后的接收者fileLog
舉個例子:
package main
import "fmt"
type person struct{
Name string
Age int
}
func (jason person) printMyInfo(){
fmt.Printf("I am %s, %d", jason.Name, jason.Age)
}
func (jason person) NextYear() person{
jason.Age++
return jason
}
func main() {
jason := person{"Jason", 26}
jason = jason.NextYear()
jason.printMyInfo()
}
結果:
I am Jason, 27
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/287213.html
標籤:區塊鏈
上一篇:以太坊:從入門到實踐
