| package main | |
| import "fmt" | |
| type Fooer interface { | |
| Foo() int | |
| } | |
| type SomeFooer struct { | |
| val int | |
| } | |
| func (s SomeFooer) Foo() int { | |
| return s.val | |
| } | |
| type AnotherFooer struct { | |
| a, b, c int | |
| } | |
| func (s AnotherFooer) Foo() int { | |
| return s.a | |
| } | |
| func printEface(a, b, c, d interface{}) { | |
| fmt.Println(a, b, c, d) // Set breakpoint 1 | |
| } | |
| func printIface(a, b Fooer) { | |
| fmt.Println(a, b) // Set breakpoint 2 | |
| } | |
| func main() { | |
| sf := SomeFooer{9} | |
| af := AnotherFooer{-1, -2, -3} | |
| printEface(1,2.0, sf, af) | |
| printIface(sf, af) | |
| } |