Go语言程序:从数组中获取最后给定数量的项目


在本教程中,我们将编写一个Go语言程序,用于从数组中移除最后给定数量的项目。我们可以使用Go语言的内置函数或使用for循环来实现。第一种方法在功能上比第二种方法更高效,但我们将在本程序中讨论这两种方法。

方法一:使用Append()从整数数组中移除最后给定数量的项目

在此方法中,我们将编写一个Go语言程序,使用append()库函数从数组中移除最后给定数量的项目。此代码在线性时间内运行,即此方法的时间复杂度为O(n)

语法

func make ([] type, size, capacity)

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

func append(slice, element_1, element_2…, element_N) []T

append函数用于向数组切片添加值。它接受多个参数。第一个参数是要向其添加值的数组,后跟要添加的值。然后,该函数返回包含所有值的最终数组切片。

算法

步骤1 - 首先,我们需要导入fmt包。

步骤2 - 然后,创建一个函数来从给定索引移除元素。此函数接受数组作为参数并返回最终数组。

步骤3 - 现在,我们需要启动main()函数。

步骤4 - 在这里,使用make()函数初始化一个整数数组,并将值添加到数组中。此外,在屏幕上打印数组。

步骤5 - 将索引存储在一个变量中,之后应删除该索引之后的元素。将该索引处的元素存储在一个变量中。

步骤6 - 现在,通过将数组和索引作为参数传递给函数并将获得的数组存储起来,来调用delLastElem()函数。

步骤7 - 在屏幕上打印最终数组。

示例

使用内部函数从整数数组中移除最后给定数量的项目的Go语言程序

package main
import "fmt"
   
// function to remove the last element from the array
func delLastElem(array []int, index int) []int {
   return append(array[:index])
}
func main() {
      
   // initializing an array
   array := make([]int, 0, 5)
   array = append(array, 1, 2, 3, 4, 5)
   fmt.Println("The given array is:", array)
   var index int = 2
      
   // getting element at index
   elem := array[index]
   result := delLastElem(array, index)
   fmt.Println()
   fmt.Println("The provided index is:", index)
   fmt.Println("Array obtained after deleting elements after ", elem, "is:\n", result)
}

输出

The given array is: [1 2 3 4 5]
The provided index is: 2
Array obtained after deleting elements after 3 is:
[1 2]

方法二:在主函数中从数组中移除最后给定元素的Go语言程序

在此方法中,我们将编写一个Go语言程序,在程序的main()部分中从数组中移除最后给定元素。

算法

步骤1 - 首先,我们需要导入fmt包。

步骤2 - 现在,我们需要启动main()函数。

步骤3 - 在这里,使用make()函数初始化一个整数数组,并将值添加到数组中。此外,使用fmt.Println()函数在屏幕上打印数组。

步骤4 - 将索引存储在一个变量中,之后应删除该索引之后的元素。将该索引处的元素存储在一个变量中。

步骤5 - 现在,要重新切片数组,请使用:运算符并将提供的索引之前的数值存储在一个变量中。

步骤6 - 此外,在屏幕上打印最终数组。

示例

从数组中移除最后给定元素的Go语言程序

package main
import "fmt"
func main() {
   
   // initializing an array
   array := make([]int, 0, 5)
   array = append(array, 11, 20, 13, 44, 56)
   fmt.Println("The given array is:", array)
   var index int = 2
   elem := array[index]
   result := array[:index]
   fmt.Println()
   fmt.Println("The provided index is:", index)
   fmt.Println("Array obtained after deleting elements after", elem, "is:\n", result)
}

输出

The given array is: [11 20 13 44 56]
The provided index is: 2
Array obtained after deleting elements after 13 is:
[11 20]

方法三:使用For循环从数组中移除最后给定数量的项目

在此方法中,我们将使用for循环从Go编程语言中的末尾移除特定索引之后的数值。由于我们使用的是for循环,因此此方法的时间复杂度将为O(n2)

算法

步骤1 - 首先,我们需要导入fmt包。

步骤2 - 现在,我们需要启动main()函数。

步骤3 - 在这里,使用make()函数初始化一个整数数组,并将值添加到数组中。此外,在屏幕上打印数组。

步骤4 - 将索引和该索引处的值存储在一个变量中,之后应删除该索引之后的元素。

步骤5 - 现在,使用for循环迭代数组,并将索引之前的元素存储在新数组中。

步骤6 - 此外,在屏幕上打印最终数组。

示例

使用for循环从整数数组中移除最后给定数量的项目的Go语言程序

package main
import "fmt"
func main() {
   array := make([]int, 0, 8)
   var result []int
   array = append(array, 11, 20, 13, 44, 56, 96, 54, 97)
   fmt.Println("The given array is:", array)
   
   // getting the last index
   var index int = 3
   
   // re-slicing the array
   for i := 0; i < len(array); i++ {
      if i < index {
         result = append(result, array[i])
      }
   }
   elem := array[index]
   fmt.Println()
   fmt.Println("The provided index is:", index)
   fmt.Println("Array obtained after deleting elements after", elem, "is:\n", result)
}

输出

The given array is: [11 20 13 44 56 96 54 97]
The provided index is: 3
Array obtained after deleting elements after 44 is:
[11 20 13]

结论

我们已经成功编译并执行了一个Go语言程序,用于从数组中移除最后给定数量的项目,并附带示例。

更新于:2023年1月10日

浏览量:153

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.