切片展开操作符...

发布时间 2023-10-17 09:10:21作者: 青烟绕指柔
package main

import "fmt"

func main() {
	slice := []int{1, 2, 3, 4, 5}
	for k, v := range slice {
		if v == 4 {
			slice = append(slice[:k], slice[k+1:]...)
		}
	}
	fmt.Println(slice)
	/*
		在切片字面量中,切片展开操作符 ... 可以用于将一个切片的所有元素展开为另一个切片的初始化值
		slice1 := []int{1, 2, 3}
		slice2 := []int{4, 5, 6}

		newSlice := append(slice1, slice2...)
		fmt.Println(newSlice) // 输出:[1 2 3 4 5 6]
	*/

	nums := []int{1, 2, 3, 4, 5}
	total := sum(nums...) // 切片展开为多个参数
	fmt.Println(total)    // 输出:15
}

func sum(numbers ...int) int {
	result := 0
	for _, num := range numbers {
		result += num
	}
	return result
}

/*
在函数调用中,当一个函数参数的类型为可变参数(...)时,我们可以使用切片展开操作符 ... 将切片作为多个参数传递给该函数。
这样,切片中的每个元素都会被当作单独的参数进行传递
*/