GO语言切片Slice数组Array的比较;利用多维切片接受EXCEL内容的输出

Posted VBA语言专家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GO语言切片Slice数组Array的比较;利用多维切片接受EXCEL内容的输出相关的知识,希望对你有一定的参考价值。

点击即可关注


Go 语言中数组是一个具有相同数据类型的元素组成的固定长度的有序集;切片是对数组的抽象,基于数组,但长度可改变,在特定场景中这样的集合更加适用,

与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。

切片可以用内建函数 make 来创建,make 函数会分配一个元素为零值的数组并返回一个引用了它的切片:

a := make([]int, 5) // len(a)=5

为切片追加新的元素是切片常用的操作,为此 Go 提供了内建的 append函数:

func append(s []T, vs ...T) []T

下面结合多维切片讲解将EXCEL的两个工作表内容输出到多维切片中:本平台所有代码经本人亲测,但发表时会有字符不全的现象,请各位依据截图校对,看代码:

1 package main

2 import (

3 "fmt"

4 "github.com/tealeg/xlsx"

5 )

6 func main() {

7 f, err := xlsx.OpenFile("./book1.xlsx")

8 if err != nil {

9 fmt.Println(err)

10 return

11 }

12 var a_re [][][]string

13 for a, sheet := range f.Sheets {

14 a2 := make([][]string, 0)

15 for b, row := range sheet.Rows {

16 a3 := make([]string, 0)

17 for c, cell := range row.Cells {

18 if cell.Value != "" {

19 fmt.Println(a+1, b+1, c+1, cell.Value)

21 a3 = append(a3, cell.Value)

21 }

22 }

23 a2 = append(a2, a3)

24 }

25 a_re = append(a_re, a2)

26 }

27 fmt.Println(a_re)

28 for i := 0; i

29 fmt.Println(a_re[i])

30 }

31 }

截图如下:


GO语言切片Slice数组Array的比较;利用多维切片接受EXCEL内容的输出

T1


讲解:每层的Slice必须要进行初始化,然后才可以用append增加元素,例子中的第一层切片是指工作表,第二层切片是指行数;第三层切片是单元格的值,共三层切片。最后利用LEN()函数取得数值的长度,再次验证输出。

看输出结果:


T2


分享成果,随喜正能量


以上是关于GO语言切片Slice数组Array的比较;利用多维切片接受EXCEL内容的输出的主要内容,如果未能解决你的问题,请参考以下文章

go语言---slice

Golang 中数组(Array)和切片(Slice)的区别

go语言中实现切片(slice)的三种方式

Go 语言范围(Range)

Go 语言范围(Range)

吴裕雄--天生自然--Go 语言学习笔记--Go 语言切片(Slice)