吞脚 发表于 2025-10-4 17:46:09

go学习笔记:s4 = append(s4[:2], append([]int{3}, s4[2:]...)...)

在 Go 语言中,append 后面的三个点 ... 是展开操作符(spread operator)
基本概念

... 用于将切片展开为独立的元素,传递给函数或 append 函数。
代码:

s4 = append(s4[:2], append([]int{3}, s4...)...)
分解这个表达式:

s4... - 将切片 s4 展开为独立的元素 append([]int{3}, s4...) - 在 后面添加 s4 的所有元素 最外层的 ... - 将内层 append 的结果展开为独立元素
具体例子:

假设 s4 =
s4 = append([]int{3}, s4...) = append(, 3,4,5) = s4[:2] = append(s4[:2], ...) = append(, 3,3,4,5) =
其他常见用法:

// 合并切片 slice1 := []int{1, 2, 3} slice2 := []int{4, 5, 6} combined := append(slice1, slice2...) // // 传递切片给可变参数函数 func sum(nums ...int) int { /* ... */ } numbers := []int{1, 2, 3} result := sum(numbers...) // 展开切片为独立参数
总结: ... 的作用是将切片"打散"成独立的元素,这样 append 就可以接收多个独立的值而不是一个切片。


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: go学习笔记:s4 = append(s4[:2], append([]int{3}, s4[2:]...)...)