diff --git a/phrasebook/ch04/zero_initialization/main.go b/phrasebook/ch04/zero_initialization/main.go new file mode 100644 index 0000000..4b6e962 --- /dev/null +++ b/phrasebook/ch04/zero_initialization/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "fmt" + "os" +) + +type Logger struct { + out *os.File +} + +func (l Logger) Log(s string) { + out := l.out + if out == nil { + out = os.Stderr + } + fmt.Fprintf(out, "%s [%d]: %s\n", os.Args[0], + os.Getpid(), s) +} +func (l *Logger) SetOutput(out *os.File) { + l.out = out +} + +func main() { + l := Logger{} + l.Log("test") +}