Golang程序 替换切片中的元素

Golang程序 替换切片中的元素

在本教程中,我们将通过不同的例子来掌握如何替换分片中的元素。分片是一个动态数组,这意味着它的值不像数组那样固定。输出将使用fmt.Println()函数打印在屏幕上。让我们看看如何通过清晰的例子来实现它。

方法1:使用内置的复制功能

在这个方法中,我们将使用内置函数copy来替换切片中的元素,即在原元素的位置上放置新元素。内置函数缩短了代码,并能轻松地解决这些问题。所有的输出都将使用fmt.Println()函数打印在控制台。让我们来看看。

语法

func copy(dst, str[] type) int

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

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

append函数用于向一个数组片断添加值。它需要一些参数。第一个参数是我们希望添加的数组,后面是要添加的值。然后,该函数返回包含所有值的数组的最终片断。

算法

  • 第1步 – 创建一个包main,并在程序中声明fmt(格式包)包,其中main产生可执行代码,fmt帮助格式化输入和输出。
  • 第2步 – 创建一个主函数,并在该函数中使用append函数创建两个片断,命名为array1和array2。

  • 第3步 – 使用拷贝函数,目的地为数组1,源为数组2,两个参数。

  • 第4步 – 将数组2中的元素从第二个索引复制到数组1中,并在控制台打印数组1。

  • 第5步 – 使用fmt.Println()函数执行打印语句,其中ln指的是下一行。

示例

使用内置的复制函数替换切片中的元素的Golang程序

package main
import "fmt"

// create main function to execute the program

func main() {
   var array1 []int   // create slice1
    var array2 []int   // create slice2
    array1 = append(array1, 6)  //append elements in slice1
    array1 = append(array1, 8)
    array1 = append(array1, 0)
    array1 = append(array1, 0)
    array2 = append(array2, 9)     // append elements in slice2
    array2 = append(array2, 10)

    copy(array1[2:], array2)   // copy the elements from source slice to destination slice
    fmt.Println("The original array1 is:",array1)
    fmt.Println("The original array2 is",array2)
    fmt.Println("The array after replacing elements in a slice is",)
    fmt.Println(array1)  // print the destination slice
}

输出

The original array1 is: [6 8 0 0]
The original array2 is: [9 10]
The array after replacing elements in a slice is:
[6 8 9 10]

方法2:使用元素的索引

在这个方法中,我们将使用索引来替换slice中的元素。所有的输出都将使用fmt.Println()函数打印在控制台。让我们灌输一下如何解决这个问题。

语法

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

append函数用于向一个数组片断添加值。它需要一些参数。第一个参数是我们希望添加的数组,后面是要添加的值。然后,该函数返回包含所有值的数组的最终片断。

算法

  • 第1步 – 创建一个包main,并在程序中声明fmt(格式包)包,其中main产生可执行代码,fmt帮助格式化输入和输出。
  • 第2步 – 创建一个主函数,并在该函数中使用名为array的append函数创建一个片断。

  • 第3步 – 取出要替换的索引值,并使用array[]index=new value将其分配给新的值。

  • 第4步 – 使用fmt.Println()函数在控制台打印新值,其中ln表示新行。

示例

Golang程序使用元素的索引替换切片中的元素

package main
import "fmt"

// create main function to execute the program
func main() {

    var array []string  // create a slice of type string

    array = append(array, "Delhi")  // append elements in the slice 
    array = append(array, "Jaipur")
    array = append(array, "Coimbatore")
    fmt.Println("The array before replacing value is:", array)
    array[1] = "Udaipur"  // replace elements in slice using indexing
    fmt.Println("The array after replacing value is:")
    fmt.Println(array)  // print the slice replaced with new element
}

输出

The array before replacing value is: [Delhi Jaipur Coimbatore]
The array after replacing value is:
[Delhi Udaipur Coimbatore]

结论

我们用两个例子执行了替换切片元素的程序。在第一个例子中,我们使用了内置的复制函数,在第二个例子中,我们使用索引来替换元素。这两个例子都给出了类似的输出。因此,该程序成功执行。