RosettaCodeData/Task/Classes/Go/classes-2.go

27 lines
504 B
Go

import reflect
type happinessTester interface {
happy() bool
}
type bottleOfWine struct {
USD float64
empty bool
}
func (b *bottleOfWine) happy() bool {
return b.USD > 10 && !b.empty
}
func main() {
partySupplies := []happinessTester{
&picnicBasket{2, true},
&bottleOfWine{USD: 6},
}
for _, ps := range partySupplies {
fmt.Printf("%s: happy? %t\n",
reflect.Indirect(reflect.ValueOf(ps)).Type().Name(),
ps.happy())
}
}