INTERFACE
Trung cấp
CA 02 / 07
showETA không cần biết đó là xe máy hay drone
Hệ thống giao đồ ăn:
type DeliveryMethod interface {
Estimate(distanceKM float64) time.Duration
}
func showETA(d DeliveryMethod, km float64) {
fmt.Println("Dự kiến:", d.Estimate(km))
}
// showETA không cần biết d là xe máy, drone, hay người đi bộ
❯ Hàm showETA nhận tham số kiểu DeliveryMethod (interface). Nó cần biết struct cụ thể nào implement interface đó không?