// +build OMIT | |
package main | |
import "fmt" | |
type I interface { | |
M() | |
} | |
type T struct { | |
S string | |
} | |
func (t *T) M() { | |
if t == nil { | |
fmt.Println("<nil>") | |
return | |
} | |
fmt.Println(t.S) | |
} | |
func main() { | |
var i I | |
var t *T | |
i = t | |
describe(i) | |
i.M() | |
i = &T{"hello"} | |
describe(i) | |
i.M() | |
} | |
func describe(i I) { | |
fmt.Printf("(%v, %T)\n", i, i) | |
} |