📅  最后修改于: 2023-12-03 15:08:37.198000             🧑  作者: Mango
在 Golang 中,多维切片可以被用来表示一个二维矩阵或者更高维的数组。本文将介绍如何创建和打印多维切片。
创建多维切片,可以用嵌套切片的形式,也可以用 make 函数来创建。
下面的代码演示了如何用嵌套切片的形式来创建一个二维切片:
package main
import "fmt"
func main() {
matrix := [][]int{
[]int{1, 2, 3},
[]int{4, 5, 6},
[]int{7, 8, 9},
}
fmt.Println(matrix)
}
输出结果:
[[1 2 3] [4 5 6] [7 8 9]]
下面的代码演示了如何用 make 函数来创建一个二维切片:
package main
import "fmt"
func main() {
rows, cols := 3, 3
matrix := make([][]int, rows)
for i := range matrix {
matrix[i] = make([]int, cols)
}
matrix[0][0] = 1
matrix[1][1] = 5
matrix[2][2] = 9
fmt.Println(matrix)
}
输出结果:
[[1 0 0] [0 5 0] [0 0 9]]
打印多维数组,可以使用循环嵌套,或者使用 fmt 包中的 Sprint 函数。
下面的代码演示了如何用循环嵌套的形式来打印一个二维切片:
package main
import "fmt"
func main() {
matrix := [][]int{
[]int{1, 2, 3},
[]int{4, 5, 6},
[]int{7, 8, 9},
}
for _, row := range matrix {
for _, col := range row {
fmt.Print(col, " ")
}
fmt.Println()
}
}
输出结果:
1 2 3
4 5 6
7 8 9
下面的代码演示了如何使用 fmt 包中的 Sprint 函数来打印一个二维切片:
package main
import (
"fmt"
"strings"
)
func main() {
matrix := [][]int{
[]int{1, 2, 3},
[]int{4, 5, 6},
[]int{7, 8, 9},
}
fmt.Println(strings.Join(vToString(matrix), "\n"))
}
func vToString(matrix [][]int) []string {
var output []string
for _, row := range matrix {
var rowStr []string
for _, col := range row {
rowStr = append(rowStr, fmt.Sprintf("%d", col))
}
output = append(output, strings.Join(rowStr, " "))
}
return output
}
输出结果:
1 2 3
4 5 6
7 8 9
以上是如何在 Golang 中创建和打印多维切片的简单介绍。嵌套切片和 make 函数都是创建多维切片的常用方法。而循环嵌套和 Sprint 函数则是打印多维切片的两种不同的实现方式。