Solution Review: Advancing the Shapes Analysis
This lesson discusses the solution to the challenge given in the previous lesson.
We'll cover the following...
We'll cover the following...
Go (1.6.2)
package mainimport "fmt"type Square struct {side float32}type Triangle struct {base float32height float32}type AreaInterface interface {Area() float32}type PeriInterface interface {Perimeter() float32}func main() {var areaIntf AreaInterfacevar periIntf PeriInterfacesq1 := new(Square)sq1.side = 5tr1 := new(Triangle)tr1.base = 3tr1.height = 5areaIntf = sq1fmt.Printf("The square has area: %f\n", areaIntf.Area())periIntf = sq1fmt.Printf("The square has perimeter: %f\n", periIntf.Perimeter())areaIntf = tr1fmt.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}
From line 8 to line 11, we implement the Triangle
type: from the formula for the area, we see that it needs two fields base and height, both of type float32
.
See the implementation of PeriInterface
from line 17 to line 18: it needs a function Perimeter()
, that also returns a float32
.
From line 48 to line 50, the Triangle
...