Could anyone tell me what's wrong with this code?
package main
import "fmt"
type Document struct{
testString string
}
type Printer interface{
Print(d *Document)
}
type Scanner interface{
Scan(d *Document)
}
type MultiFunctionMachine struct{
printer Printer
scanner Scanner
}
func (m *MultiFunctionMachine)Print(d *Document){
m.printer.Print(d)
}
func main(){
doc:= Document{"test"}
multiMachine:= MultiFunctionMachine{}
multiMachine.Print(&doc)
}
I couldn't figure out why it keeps throwing this following error. It seems like something is wrong with the pointers.
*panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1092b46]
goroutine 1 [running]:
main.(*MultiFunctionMachine).Print(...)
/Users/dmml/Documents/golang/udemyGoCourses/designPatternInGo/solidDesignPrinciples/interfaceSegrationPrinciple/main.go:85
main.main()
/Users/dmml/Documents/golang/udemyGoCourses/designPatternInGo/solidDesignPrinciples/interfaceSegrationPrinciple/main.go:94 +0x46
exit status 2*