Files
bootdotdev-fcc-learn-golang…/course/5-interfaces/exercises/1-interfaces/code.go
wagslane 9be3074de6 first
2023-05-01 15:25:27 -06:00

59 lines
1.1 KiB
Go

package main
import (
"fmt"
"time"
)
func sendMessage(msg message) {
// ?
}
type message interface {
// ?
}
// don't edit below this line
type birthdayMessage struct {
birthdayTime time.Time
recipientName string
}
func (bm birthdayMessage) getMessage() string {
return fmt.Sprintf("Hi %s, it is your birthday on %s", bm.recipientName, bm.birthdayTime.Format(time.RFC3339))
}
type sendingReport struct {
reportName string
numberOfSends int
}
func (sr sendingReport) getMessage() string {
return fmt.Sprintf(`Your "%s" report is ready. You've sent %v messages.`, sr.reportName, sr.numberOfSends)
}
func test(m message) {
sendMessage(m)
fmt.Println("====================================")
}
func main() {
test(sendingReport{
reportName: "First Report",
numberOfSends: 10,
})
test(birthdayMessage{
recipientName: "John Doe",
birthdayTime: time.Date(1994, 03, 21, 0, 0, 0, 0, time.UTC),
})
test(sendingReport{
reportName: "First Report",
numberOfSends: 10,
})
test(birthdayMessage{
recipientName: "Bill Deer",
birthdayTime: time.Date(1934, 05, 01, 0, 0, 0, 0, time.UTC),
})
}