您将如何解决以下Golang挑战?

时间:2017-07-03 12:40:26

标签: go

我必须解决以下TreeHouse Go挑战,但我仍然坚持使用Print方法。

要求:

  

clockcalendar个套餐中,我们定义了ClockCalendar类型,这两种类型都有Display方法。可以打电话来打印它们。   在schedule包中,定义DisplayableDisplay类型Clock方法满足的Calendar接口。 (不要对clockcalendar包进行任何更改。)然后,仍然在schedule包中,定义一个Print函数,该函数需要Displayable 1}}值并在其上调用Display

clock.go:

package clock

import "fmt"

type Clock struct {
  Hours int
  Minutes int
}

func (c Clock) Display() {
  fmt.Printf("%02d:%02d", c.Hours, c.Minutes)
}

calendar.go:

package calendar

import "fmt"

type Calendar struct {
  Year int
  Month int
  Day int
}

func (c Calendar) Display() {
  fmt.Printf("%04d-%02d-%02d", c.Year, c.Month, c.Day)
}

schedule.go:

package schedule

// DECLARE A Displayable INTERFACE HERE
type Displayable interface {
    Display()
}

// DECLARE A Print FUNCTION HERE (I'm stuck here)

谢谢!

1 个答案:

答案 0 :(得分:2)

func Print(d Displayable) {
     d.Display()
}