How do you construct an interface as a parameter to a function?
type blahinterface interface {
method1()
method2()
method3()
}
func blah (i blahinterface) {
}
blah(?) < what goes in here
How do you construct an interface as a parameter to a function?
type blahinterface interface {
method1()
method2()
method3()
}
func blah (i blahinterface) {
}
blah(?) < what goes in here
Actually, if you try to put anything "in here", the compiler will tell you precisely what is missing:
type S struct{}
func main() {
fmt.Println("Hello, playground")
s := &S{}
blah(s)
}
A go build
on this example would tell you:
prog.go:20: cannot use s (type *S) as type blahinterface in argument to blah:
*S does not implement blahinterface (missing method1 method)
[process exited with non-zero status]
But with:
func (s *S) method1(){}
func (s *S) method2(){}
func (s *S) method3(){}
The program do compile just fine.
So even without reading about interfaces, you are guided and can guess what is missing.