github.com/giovannyortegon/go@v0.0.0-20220115155912-8890063f5bdd/Profesional/3-Reto/AreaInterface.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "math" 6 ) 7 8 const pi float64 = math.Pi 9 10 type Area interface { 11 area() float64 12 } 13 14 type Cuadrado struct { 15 ancho float64 16 altura float64 17 } 18 19 type Circulo struct { 20 perimetro float64 21 } 22 23 func (cua * Cuadrado) area() float64 { 24 return cua.ancho * cua.altura 25 } 26 27 func (cir * Circulo) area() float64 { 28 return pi * math.Pow(cir.perimetro, 2.0) 29 } 30 31 func encontrarArea(a Area) { 32 fmt.Println(a.area()) 33 } 34 35 func main() { 36 37 circulo := Circulo{35.6} 38 encontrarArea(&circulo) 39 40 cuadrado := Cuadrado{20.3, 10.6} 41 encontrarArea(&cuadrado) 42 }