1. 程式人生 > >go接口

go接口

int cost cal 程序員 program main ace PE all

package main
impoet (
"fmt"
)

type Employer interface { CalcSalary() float32 } type Programer struct { name string base float32 extra float32 } func NewProgramer(name string,base float32,extra float32) Programer{
return Programer{ name:name, base:base, extra:extra, } } func (p Programer) CalcSalary() float32 {
return p.base } type Sale struct { name string base float32 extra float32 } func NewSale(name string,base,extra float32) Sale { return Sale{ name:name, base:base, extra:extra, } } func (p Sale) CalcSalary() float32 { return p.base+p.extra*p.base*0.5 } func calcAll(e []Employer) float32 { var cost float32
for _,v:=range e{ cost=cost+v.CalcSalary() } return cost } func main() { p1 :=NewProgramer("搬磚1",1500.0,0) p2 :=NewProgramer("搬磚1",1500.0,0) p3 :=NewProgramer("搬磚1",1500.0,0) s1 :=NewSale("銷售1",800.0,2.5) s2 :=NewSale("銷售2",800.0,2.5) s3 :=NewSale("銷售3",800.0,2.5) var employlist []Employer employlist
=append(employlist,p1) employlist=append(employlist,p2) employlist=append(employlist,p3) employlist=append(employlist,s1) employlist=append(employlist,s2) employlist=append(employlist,s3) cost :=calcAll(employlist) fmt.Printf("這個月的總成本:%f\n",cost) }

說明:

第一步:先是定義一個求職者的計算工資的接口

第二步: 定義一個程序員的結構體和生成程序員的函數

第三步: 給這個程序員定義一個計算工資的函數

第四步: 定義一個銷售員

第五步: 定義一個求總和的函數

go接口