| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package main
- import "fmt"
- type Square struct {
- side float32
- }
- type Triangle struct {
- base float32
- height float32
- }
- type AreaInterface interface {
- Area() float32
- }
- type PeriInterface interface {
- Perimeter() float32
- }
- func main() {
- var areaIntf AreaInterface
- var periIntf PeriInterface
- sq1 := new(Square)
- sq1.side = 5
- tr1 := new(Triangle)
- tr1.base = 3
- tr1.height = 5
- areaIntf = sq1
- fmt.Printf("The square has area: %f\n", areaIntf.Area())
- periIntf = sq1
- fmt.Printf("The square has perimeter: %f\n", periIntf.Perimeter())
- areaIntf = tr1
- fmt.Printf("The triangle has area: %f\n", areaIntf.Area())
- }
- func (sq *Square) Area() float32 {
- return sq.side * sq.side
- }
- func (sq *Square) Perimeter() float32 {
- return 4 * sq.side
- }
- func (tr *Triangle) Area() float32 {
- return 0.5 * tr.base * tr.height
- }
|