通常情况下,要按整数数组你包起来的IntSlice,它定义了方法Len,Less和Swap。这些方法依次由sort.Sort. 是什么sort.Reverse做的是,它采用现有的类型定义Len,Less以及Swap,但它取代了Less用一个新的,始终是潜在的逆方法Less:type reverse struct { // This embedded Interface permits Reverse to use the methods of // another Interface implementation. 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 returns the reverse order for data.func Reverse(data Interface) Interface { return &reverse{data}}所以当你写的时候sort.Reverse(sort.IntSlice(s)),发生的事情是你得到了这个新的、“修改过的” IntSlice,它的Less方法被替换了。因此,如果您调用sort.Sort它,即调用Less,它将按降序排序。