我正在编写不同的调度算法,并想比较订购作业的各种方式。我在结构上有一个函数,我想传递排序接口类型的类型以供函数内的排序使用。
type Schedule struct {
Jobs []Job
}
type ByDifference []Job
// ByDifference implements sort.Interface
type ByRatio []Job
// ByRatio implements sort.Interface
func (s *Schedule) Schedule(OrderBy sort.Interface) {
// Summation variables omitted
// This fails as there is no function OrderBy()
sort.(OrderBy(q.Jobs))
for _, v := range q.Jobs {
// Compute weighted sum omitted
}
// Output code omitted
}
自然,我想调用 Schedule 函数并传递 ByDifference 或 ByRatio 的一些表示,并让排序使用该类型。我最初的阅读似乎导致了类型反射。是否可以使用这种设计来传递一种类型,该类型实现了要在函数内由 sort 使用的接口?
呼啦一阵风
相关分类