38 lines
540 B
Go
38 lines
540 B
Go
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)
|
|
} |