Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "fmt"
- "math"
- )
- type geometry interface {
- area() float64
- perim() float64
- }
- type rect struct {
- width, height float64
- }
- type circle struct {
- radius float64
- }
- func(r rect) area() float64 {
- return r.width * r.height
- }
- func(r rect) perim() float64 {
- return 2*r.width + 2*r.height
- }
- func(c circle) area() float64 {
- return math.Pi * (c.radius * c.radius)
- }
- func(c circle) perim() float64 {
- return 2 * math.Pi * c.radius
- }
- func printStuff(g geometry) {
- fmt.Println(g)
- fmt.Println("Area:", g.area())
- fmt.Println("Perim:", g.perim())
- }
- func main() {
- r := rect{width: 5, height: 10}
- c := circle{radius: 6}
- printStuff(r)
- printStuff(c)
- fmt.Println("Press ENTER to exit the program.")
- fmt.Scanln()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement