- 您必须定义自己如何对这种类型进行排序。您可以创建必要的方法来使用该
sort.Sort
接口,并根据需要使用指针来更改数组值:https - //play.golang.org/p/thdf-k2k3o
type Matrix [3][3]int func (m Matrix) Len() int { return len(m) } func (m Matrix) Less(i, j int) bool { for x := range m[i] { if m[i][x] == m[j][x] { continue } return m[i][x] < m[j][x] } return false } func (m *Matrix) Swap(i, j int) { m[i], m[j] = m[j], m[i] } func main() { m := Matrix(matrix) sort.Sort(&m) }
- 或使用该
sort.Slice
函数,转换matrix
为切片并提供适当的较少函数:https - //play.golang.org/p/4hrghm9gib
sort.Slice(matrix[:], func(i, j int) bool { for x := range matrix[i] { if matrix[i][x] == matrix[j][x] { continue } return matrix[i][x] < matrix[j][x] } return false }) fmt.Println(matrix)