package main
import "fmt"
type ABC interface {
Print()
}
type X struct {
i int
}
func (x X) Print() {
fmt.Println("X: ", x.i)
}
type Y struct {
s string
}
func (y Y) Print() {
fmt.Println("Y: ", y.s)
}
func Show(abc ABC) {
abc.Print()
}
func main(){
var x X
x.i = 10
var y Y
y.s = "Sample"
Show(x)
Show(y)
}
cGFja2FnZSBtYWluCmltcG9ydCAiZm10IgoKdHlwZSBBQkMgaW50ZXJmYWNlIHsKCVByaW50KCkKfQoKdHlwZSBYIHN0cnVjdCB7CglpIGludAp9CgpmdW5jICh4IFgpIFByaW50KCkgewoJZm10LlByaW50bG4oIlg6ICIsIHguaSkKfQoKCnR5cGUgWSBzdHJ1Y3QgewoJcyBzdHJpbmcKfQoKZnVuYyAoeSBZKSBQcmludCgpIHsKCWZtdC5QcmludGxuKCJZOiAiLCB5LnMpCn0KCmZ1bmMgU2hvdyhhYmMgQUJDKSB7CglhYmMuUHJpbnQoKQp9CgpmdW5jIG1haW4oKXsKCXZhciB4IFgKCXguaSA9IDEwCgkKCXZhciB5IFkKCXkucyA9ICJTYW1wbGUiCgkKCVNob3coeCkKCVNob3coeSkKfQ==