通过这种方式,反向实现了
sort.Interface,我们可以覆盖特定的方法而不必定义所有其他方法
type reverse struct { // This embedded Interface permits Reverse to use the methods of // another Interface implementation. Interface}请注意,这里是如何交换
(j,i)而不是交换的
(i,j),这也是为struct声明的唯一方法,
reverse即使
reverse实现
sort.Interface
// Less returns the opposite of the embedded implementation's Less method.func (r reverse) Less(i, j int) bool { return r.Interface.Less(j, i)}无论此方法内部传递了什么结构,我们都会将其转换为新的
reverse结构。
// Reverse returns the reverse order for data.func Reverse(data Interface) Interface { return &reverse{data}}真正的价值在于,如果您认为如果无法采用这种方法,该怎么办。
Reverse
向sort.Interface
吗?添加另一种方法?- 创建另一个ReverseInterface?
- …?
任何此类更改都需要跨数千个要使用标准反向功能的软件包的许多行代码。



