zoukankan      html  css  js  c++  java
  • Go Example--接口

    package main
    
    import (
    	"math"
    	"fmt"
    )
    
    type geometry interface {
    	area() float64
    	perim() float64
    }
    
    //rect实现接口
    type rect struct {
    	width,height float64
    }
    //cicle实现接口
    type cicle 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 cicle)area() float64 {
    	return math.Pi * c.radius*c.radius
    }
    
    func (c cicle)perim() float64 {
    	return 2*math.Pi*c.radius
    }
    
    func measure(g geometry)  {
    	fmt.Println(g)
    	fmt.Println(g.area())
    	fmt.Println(g.perim())
    }
    
    func main()  {
    	r := rect{3,height:4}
    	c:=cicle{radius:5}
    
    	//rect cicle都可以赋值给接口
    	measure(r)
    	measure(c)
    }
    
  • 相关阅读:
    整理牙刷
    color 圆盘染色
    数论の一波流[长期更新]
    生成树
    一维黑白棋
    Factorials
    平面分割问题
    poj1183 反正切函数
    烽火传递
    校门外的树
  • 原文地址:https://www.cnblogs.com/promenader/p/9800011.html
Copyright © 2011-2022 走看看