0

0

如何在 Go 中以惯用方式拼接二维切片

碧海醫心

碧海醫心

发布时间:2026-01-13 18:47:18

|

847人浏览过

|

来源于php中文网

原创

如何在 Go 中以惯用方式拼接二维切片

go 中,可通过 `append(slice, otherslice...)` 语法将一个二维切片(如 `[][]string`)整体追加到另一个同类型二维切片末尾,其中 `...` 将目标切片展开为可变参数。

Go 的 append() 函数原生只接受一维切片(即 []T 类型)作为参数,因此直接传入 [][]string 会导致编译错误:cannot use myArray (type [][]string) as type []string in append。解决的关键在于理解 ... 操作符的作用——它会将切片的每个元素作为独立参数传递给函数,从而匹配 append([][]string, [][]string...) 的签名。

以下是一个完整示例:

package main

import "fmt"

func main() {
    a := [][]string{{"a", "b"}, {"c", "d"}}
    b := [][]string{{"1", "2"}, {"3", "4"}}

    // ✅ 正确:使用 ... 展开 b,逐个追加其子切片
    a = append(a, b...)

    fmt.Println(a)
    // 输出: [[a b] [c d] [1 2] [3 4]]
}

⚠️ 注意事项:

松果AI写作
松果AI写作

专业全能的高效AI写作工具

下载
  • b... 要求 b 的元素类型必须与 a 的元素类型一致(此处均为 []string),否则编译失败;
  • append() 返回新切片,必须显式赋值回原变量(如 a = append(a, b...)),否则修改不会生效;
  • 该操作是浅拷贝:子切片(如 b[0])的底层数组未被复制,若后续修改 b[0][0],而 a 中对应位置引用同一底层数组,则可能产生意外副作用(需根据场景决定是否深拷贝);
  • 若需拼接多个二维切片,可链式调用:a = append(append(a, b...), c...)。

总结:append(dst, src...) 是 Go 中拼接多维切片最简洁、最惯用的方式,核心在于正确使用 ... 操作符进行参数展开。掌握这一模式,可高效处理切片合并、构建动态二维数据结构等常见任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

315

2023.08.02

treenode的用法
treenode的用法

​在计算机编程领域,TreeNode是一种常见的数据结构,通常用于构建树形结构。在不同的编程语言中,TreeNode可能有不同的实现方式和用法,通常用于表示树的节点信息。更多关于treenode相关问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

534

2023.12.01

C++ 高效算法与数据结构
C++ 高效算法与数据结构

本专题讲解 C++ 中常用算法与数据结构的实现与优化,涵盖排序算法(快速排序、归并排序)、查找算法、图算法、动态规划、贪心算法等,并结合实际案例分析如何选择最优算法来提高程序效率。通过深入理解数据结构(链表、树、堆、哈希表等),帮助开发者提升 在复杂应用中的算法设计与性能优化能力。

17

2025.12.22

深入理解算法:高效算法与数据结构专题
深入理解算法:高效算法与数据结构专题

本专题专注于算法与数据结构的核心概念,适合想深入理解并提升编程能力的开发者。专题内容包括常见数据结构的实现与应用,如数组、链表、栈、队列、哈希表、树、图等;以及高效的排序算法、搜索算法、动态规划等经典算法。通过详细的讲解与复杂度分析,帮助开发者不仅能熟练运用这些基础知识,还能在实际编程中优化性能,提高代码的执行效率。本专题适合准备面试的开发者,也适合希望提高算法思维的编程爱好者。

13

2026.01.06

go语言 数组和切片
go语言 数组和切片

本专题整合了go语言数组和切片的区别与含义,阅读专题下面的文章了解更多详细内容。

46

2025.09.03

append用法
append用法

append是一个常用的命令行工具,用于将一个文件的内容追加到另一个文件的末尾。想了解更多append用法相关内容,可以阅读本专题下面的文章。

343

2023.10.25

python中append的用法
python中append的用法

在Python中,append()是列表对象的一个方法,用于向列表末尾添加一个元素。想了解更多append的更多内容,可以阅读本专题下面的文章。

1070

2023.11.14

python中append的含义
python中append的含义

本专题整合了python中append的相关内容,阅读专题下面的文章了解更多详细内容。

174

2025.09.12

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 3.7万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号