Golang 实现切片

Golang 实现切片

Golang中的切片是动态数组,用于添加无法添加到数组中的额外元素,因为数组具有固定大小。在本文中,我们使用两个示例来演示切片的使用。在这两个示例中,执行了各种操作以展示其工作原理。在第一个示例中,创建了一个字符串切片,在第二个示例中,创建了一个整数切片。让我们通过示例来了解切片的概念。

语法

funccopy(dst, str[] type) int

在go语言中,copy函数用于将一个源数组的值复制到目标数组,并将复制的元素数量作为结果返回。它以两个数组作为参数。

func make ([] type, size, capacity)

在Go语言中,make函数用于创建一个数组/映射,接受要创建的变量类型、其大小和容量作为参数。

funcappend(slice, element_1, element_2…, element_N) []T

append函数用于向数组片段中添加值。它接受多个参数。第一个参数是我们希望添加值的数组,后面是要添加的值。这个函数然后返回包含所有值的数组的最终片段。

步骤

  • 创建一个主函数,在该函数中使用make函数创建一个字符串元素的切片,make函数是一种内置函数类型。

  • 在这一步中,使用索引设置切片中的值,将三个值设置到切片中。

  • 使用fmt包中的Println函数将切片元素打印到控制台上。

  • 然后,使用内置的append函数将值添加到切片中。

  • 以与之前步骤相同的方式在控制台上打印更新后的切片。

  • 然后,将切片进行切片操作,并在控制台上打印出来。

  • 最后,迭代巧克力切片,在每次迭代中使用Println函数打印索引和该索引处的值,ln代表换行。

示例1

在这个示例中,我们将创建一个字符串类型的切片并通过首先在切片中设置值,然后追加新的值,对切片进行切片和迭代来操作切片。所有的输出都将使用fmt包来打印。

package main

import "fmt"

func main() {
   // create a slice with an initial capacity of 3
   slice := make([]string, 3)
   fmt.Println("empty slice:", slice)

   // set values to the slice
   slice[0] = "munch"
   slice[1] = "bourbon"
   slice[2] = "perk"
   fmt.Println("set slice:", slice)

   slice = append(slice, "Dairy milk")
   fmt.Println("appended slice:", slice)

   sliced := slice[1:4]
   fmt.Println("sliced slice:", sliced)

   // iterate over the slice
   for i, chocolates := range slice {
      fmt.Printf("index %d, value %s\n", i, chocolates)
   }
}

输出

empty slice: [  ]
set slice: [munch bourbon perk]
appended slice: [munch bourbon perk Dairy milk]
sliced slice: [bourbon perk Dairy milk]
index 0, value munch
index 1, value bourbon
index 2, value perk
index 3, value Dairy milk

示例2

在这个示例中,将创建一个类似于前一个示例的切片,但是这里的切片中将设置整数,然后将按照切片的方式进行操作,然后使用内置函数在切片中添加元素,并创建一个新的复制的切片。

//Golang program to implement slices
package main

import "fmt"

func main() {
   slice := []int{10, 20, 30, 40, 50}
   fmt.Println("initial slice:", slice)

   sliced := slice[1:4]
   fmt.Println("sliced slice:", sliced)

   slice[2] = 11
   slice[4] = 22
   fmt.Println("modified slice:", slice)

   sliced[1] = 44
   fmt.Println("modified sliced slice:", sliced)

   slice = append(slice, 66)
   fmt.Println("appended slice:", slice)

   copySlice := make([]int, len(slice))
   copy(copySlice, slice)
   fmt.Println("copied slice:", copySlice)
}

输出

initial slice: [10 20 30 40 50]
sliced slice: [20 30 40]
modified slice: [10 20 11 40 22]
modified sliced slice: [20 44 40]
appended slice: [10 20 44 40 22 66]
copied slice: [10 20 44 40 22 66]

结论

我们执行并编译了使用两个示例实现切片的程序。在这两个示例中,我们展示了使用切片插入新元素、复制切片、切片切片的用法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程