go学习笔记:s4 = append(s4[:2], append([]int{3}, s4[2:]…)…),append后面三个点是什么意思?

在 Go 语言中,append 后面的三个点 … 是展开操作符(spread operator)

基本概念

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

代码:

s4 = append(s4[:2], append([]int{3}, s4[2:]...)...)

分解这个表达式:

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

具体例子:

假设 s4 = [1,2,3,4,5]

s4[2:] = [3,4,5]
append([]int{3}, s4[2:]...) = append([3], 3,4,5) = [3,3,4,5]
s4[:2] = [1,2]
append(s4[:2], [3,3,4,5]...) = append([1,2], 3,3,4,5) = [1,2,3,3,4,5]

其他常见用法:

// 合并切片
slice1 := []int{1, 2, 3}
slice2 := []int{4, 5, 6}
combined := append(slice1, slice2...) // [1,2,3,4,5,6]

// 传递切片给可变参数函数
func sum(nums ...int) int { /* ... */ }
numbers := []int{1, 2, 3}
result := sum(numbers...) // 展开切片为独立参数

总结: ... 的作用是将切片”打散”成独立的元素,这样 append 就可以接收多个独立的值而不是一个切片。

来源链接:https://www.cnblogs.com/neural-networker/p/18993920

© 版权声明
THE END
支持一下吧
点赞10 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容