Golang 如何创建和打印多维切片
切片是一种变长的序列,可以存储相似类型的元素,但是不允许在同一个切片中存储不同类型的元素。它就像具有索引值和长度的数组,但是切片的大小在重新分配时不是固定的,就像数组一样。在内部,切片和数组是相互连接的,一个切片是对底层数组的引用。在切片中允许存储重复元素。切片中的第一个索引位置总是0,最后一个索引位置是(切片长度-1)。
多维切片 就像多维数组一样,但是切片不包含大小。
举例:
// Golang程序演示多维切片
package main
import "fmt"
func main() {
// 创建多维切片
s1 := [][]int{
{1, 2},
{3, 4},
{5, 6},
{7, 8},
}
// 访问多维切片
fmt.Println("Slice 1 : ", s1)
// 创建多维切片
s2 := [][]string{
[]string{"str1", "str2"},
[]string{"str3", "str4"},
[]string{"str5", "str6"},
}
// 访问多维切片
fmt.Println("Slice 2 : ", s2)
// 打印s2中的每个切片
fmt.Println("MultiDimensional Slice s2:")
for i := 0; i < len(s2); i++ {
fmt.Println(s2[i])
}
// 以矩阵形式打印切片中的元素
fmt.Println("Slice s2 Like Matrix:")
// s2中的行数
n := len(s2)
// s2中的列数
m := len(s2[0])
for i := 0; i < n; i++ {
for j := 0; j < m; j++ {
fmt.Print(s2[i][j] + " ")
}
fmt.Print("\n")
}
}
输出:
Slice 1 : [[1 2] [3 4] [5 6] [7 8]]
Slice 2 : [[str1 str2] [str3 str4] [str5 str6]]
MultiDimensional Slice s2:
[str1 str2]
[str3 str4]
[str5 str6]
Slice s2 Like Matrix:
str1 str2
str3 str4
str5 str6