設計思路:
宣告日誌寫入介面
後面的型別都是通過該介面的方法實現日誌寫入
/*定義命令列寫入器型別宣告日誌寫入介面,後面的型別都是通過該介面的方法實現日誌寫入
*/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...