interfaces.go 504 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package main
  2. import (
  3. "fmt"
  4. "math"
  5. )
  6. type retangulo struct {
  7. altura float64
  8. largura float64
  9. }
  10. func (r retangulo) area() float64 {
  11. return r.altura * r.largura
  12. }
  13. type circulo struct {
  14. raio float64
  15. }
  16. func (c circulo) area() float64 {
  17. return math.Pi * math.Pow(c.raio, 2)
  18. }
  19. type forma interface {
  20. area() float64
  21. }
  22. func escreverArea(f forma) {
  23. fmt.Printf("A área da forma é %0.2f\n", f.area())
  24. }
  25. func main() {
  26. r := retangulo{10, 15}
  27. escreverArea(r)
  28. c := circulo{10}
  29. escreverArea(c)
  30. }