Go语言程序反转切片


在本教程中,我们将学习如何使用各种示例反转切片。切片就像数组一样,是一系列元素的序列。数组是元素的固定序列,而切片是动态数组,这意味着它的值不是固定的,可以更改。切片比数组更有效率且速度更快,此外它们是通过引用而不是通过值传递的。让我们通过示例来了解这些内容。

语法

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

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

方法 1:在示例中使用整数值

在这种方法中,我们将了解如何使用整数值反转切片。在这里,我们将使用 append 函数输入值。输出将使用 fmt.Println() 函数打印到控制台。让我们通过代码了解它是如何完成的。

算法

  • 步骤 1 − 创建一个 package main 并声明程序中的 fmt(格式包),其中 main 生成可执行代码,fmt 帮助格式化输入和输出。

  • 步骤 2 − 创建一个函数 main,并在该函数中创建一个空切片(类型为整数),并使用 append 函数向该切片中添加元素。

  • 步骤 3 − 使用两个变量 i 和 j 运行循环,这两个变量都应用于同一位置。

  • 步骤 4 − 初始化变量 i 和 j 等于 0 和切片长度 -1。运行循环,直到 I 小于 j。

  • 步骤 5 − 在循环中,使用 Go 的多重赋值功能交换索引 i 和 j 处的元素。

  • 步骤 6 − 交换后,i 加 1,j 减 1,循环继续进行下一次交换。

  • 步骤 7 − 使用 fmt.Prinltn() 函数打印交换后的切片,其中 ln 指的是换行符。

示例

Go语言程序使用示例中的整数值反转切片

package main
import "fmt"
func main() {

   var slice []int
   slice = append(slice, 10) // create slice using append function
   slice = append(slice, 20)
   slice = append(slice, 30)
   slice = append(slice, 40)

   fmt.Println("The slice before reversal is:", slice)
   for i, j := 0, len(slice)-1; i < j; i, j = i+1, j-1 {
      slice[i], slice[j] = slice[j], slice[i]  //reverse the slice
   }

   fmt.Println("The slice after reversal is:")
   fmt.Println(slice)    // print the reversed slice
}

输出

The slice before reversal is: [10 20 30 40]
The slice after reversal is:
[40 30 20 10]

方法 2:在示例中使用字符串值

在这种方法中,我们将了解如何使用字符串值反转切片。在这里,我们将使用 append 函数输入值。输出将使用 fmt.Println() 函数打印到控制台。让我们通过代码了解它是如何完成的。

算法

  • 步骤 1 − 创建一个 package main 并声明程序中的 fmt(格式包),其中 main 生成可执行代码,fmt 帮助格式化输入和输出。

  • 步骤 2 − 创建一个函数 main,并在该函数中创建一个空切片(类型为字符串),并使用 append 函数向该切片中添加元素。

  • 步骤 3 − 使用两个变量 i 和 j 运行循环,这两个变量都应用于同一位置。

  • 步骤 4 − 初始化变量 i 和 j 等于 0 和切片长度 -1。运行循环,直到 I 小于 j。

  • 步骤 5 − 在循环中,使用 Go 的多重赋值功能交换索引 i 和 j 处的元素。

  • 步骤 6 − 交换后,i 加 1,j 减 1,循环继续进行下一次交换。

  • 步骤 7 − 使用 fmt.Prinltn() 函数打印交换后的切片,其中 ln 指的是换行符。

示例

Go语言程序使用示例中的字符串值反转切片

package main
import "fmt"
func main() {

   var slice []string
   slice = append(slice, "Delhi") // create slice using append function
   slice = append(slice, "Mumbai")
   slice = append(slice, "Bangalore")
   slice = append(slice, "Jaipur")

   fmt.Println("The slice before reversal is:", slice)
   for i, j := 0, len(slice)-1; i < j; i, j = i+1, j-1 {
      slice[i], slice[j] = slice[j], slice[i]   // reverse the slice
   }

   fmt.Println("The slice after reversal is:")
   fmt.Println(slice)  // print the reversed slice

}

输出

The slice before reversal is: [Delhi Mumbai Bangalore Jaipur]
The slice after reversal is:
[Jaipur Bangalore Mumbai Delhi]

结论

我们使用两个示例执行了反转切片元素的程序。在第一个示例中,我们使用了整数值并交换了它们,在第二个示例中,我们使用了字符串值并交换了它们。这两个示例都给出了类似的输出。因此,程序成功执行。

更新于: 2023年1月17日

3K+ 阅读量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.