在 Go 中对多维数组进行排序可以通过手动定义排序方式来实现。可以采取两种方法:
1。实现 sort.Sort 接口:
为 Len、Less 和 Swap 创建自定义方法以与 sort.Sort 一起使用,使您能够在排序期间修改数组值。例如:
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) }
2。使用 sort.Slice 函数:
将数组转换为切片,并为 sort.Slice 提供类似的函数来处理排序。例如:
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)
这两种方法都允许您在 Go 中自定义二维数组的排序行为。
以上是如何在 Go 中对二维数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!