mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2025-11-01 18:42:34 +00:00
@@ -80,7 +80,7 @@ func printTracks(tracks []*Track) {
|
||||
}
|
||||
```
|
||||
|
||||
爲了能按照Artist字段對播放列表進行排序,我們會像對StringSlice那樣定義一個新的帶有必鬚Len,Less和Swap方法的切片類型。
|
||||
爲了能按照Artist字段對播放列表進行排序,我們會像對StringSlice那樣定義一個新的帶有必須Len,Less和Swap方法的切片類型。
|
||||
|
||||
```go
|
||||
type byArtist []*Track
|
||||
@@ -89,7 +89,7 @@ func (x byArtist) Less(i, j int) bool { return x[i].Artist < x[j].Artist }
|
||||
func (x byArtist) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
|
||||
```
|
||||
|
||||
爲了調用通用的排序程序,我們必鬚先將tracks轉換爲新的byArtist類型,它定義了具體的排序:
|
||||
爲了調用通用的排序程序,我們必須先將tracks轉換爲新的byArtist類型,它定義了具體的排序:
|
||||
|
||||
```go
|
||||
sort.Sort(byArtist(tracks))
|
||||
@@ -137,7 +137,7 @@ func Reverse(data Interface) Interface { return reverse{data} }
|
||||
|
||||
reverse的另外兩個方法Len和Swap隱式地由原有內嵌的sort.Interface提供。因爲reverse是一個不公開的類型,所以導出函數Reverse函數返迴一個包含原有sort.Interface值的reverse類型實例。
|
||||
|
||||
爲了可以按照不同的列進行排序,我們必鬚定義一個新的類型例如byYear:
|
||||
爲了可以按照不同的列進行排序,我們必須定義一個新的類型例如byYear:
|
||||
|
||||
```go
|
||||
type byYear []*Track
|
||||
|
||||
Reference in New Issue
Block a user