1 26 Go語言實現日誌系統

2022-09-27 10:48:13 字數 1678 閱讀 9965

設計思路:

宣告日誌寫入介面

後面的型別都是通過該介面的方法實現日誌寫入

/*

宣告日誌寫入介面,後面的型別都是通過該介面的方法實現日誌寫入

*/type logwriter inte***ce ) error

}

定義命令列寫入器型別

/*

定義乙個命令列寫入器型別

要通過日誌寫入介面的方法進行日誌寫入

*/type consolewriter struct

命令列寫入器實現介面方法

// 實現日誌write()方法

func (f *consolewriter) write(data inte***ce{}) error

提供命令列寫入器例項化方法

// 建立命令列寫入器例項函式

func newconsolewriter() *consolewriter

}

定義檔案寫入器型別

/*

定義乙個檔案寫入器型別

*/type filewriter struct

檔案寫入器寫入檔名

// 檔案寫入器寫入檔名

func (f *filewriter) setfile(filename string) (err error)

​// 建立檔案並且儲存控制代碼

f.file, err = os.create(filename)

​// 建立過程出錯則返回錯誤資訊

return err

}

檔案寫入器實現介面方法

// 檔案寫入器實現write函式

func (f *filewriter) write(data inte***ce{}) error

​// 序列化資料

str := fmt.sprintf("%v/n", data)

​// 將資料以位元組陣列的形式寫入檔案--->呼叫f實現的函式

_, err := f.file.write(byte(str))

​return err

}

提供檔案寫入器例項化方法

// 提供檔案寫入器例項化函式

func newfilewriter() *filewriter

}

定義日誌器

/*

定義日誌器型別

*/type loggertool struct

定義該日誌器的方法

註冊日誌寫入器--->將實現了logwriter介面的物件接收並加入日誌器中

將乙個任意型別資料寫入日誌

func (l *loggertool) log(data inte***ce{}) 

}

例項化日誌器函式

func newlogger() *loggertool 

}

建立日誌器方法

func createloggertool() *loggertool 

// 註冊檔案寫入器到日誌器中

l.registerwriter(fw)

return l

}

執行該日誌系統

func main()

Go語言實現學生管理系統

使用go來實現乙個學生管理系統,要實現的功能也很簡單,擁有檢視 新增 修改 刪除功能。分為兩個檔案main.go student.go,main作為程式入口有功能展示模組,student是實現上述功能的方法和函式。當然也可以把兩個檔案合到一起,把student中的 拷貝到main即可。注意 1.都在...

Go語言實現Valid Parentheses

write a function called that takes a string of parentheses,and determines if the order of the parentheses is valid.the function should return true if ...

go語言實現鍊錶

宣告結構體 宣告全域性變數,儲存頭結點 var head node var curr node 宣告節點型別 type node struct 建立頭結點 func createheadnode data string node 新增新節點 func addnode data string node...