golang如何优雅的合并切片?

php里面有array_meage函数,go的切片操作中是否有类似函数呢?还是只能手动遍历然后一个一个的append?
图片描述

阅读 66.8k
3 个回答
package main

import "fmt"

func main() {
    s1 := []int{0, 1, 2, 3}
    s2 := []int{4, 5, 6, 7}

    s1 = append(s1, s2...)
    fmt.Println(s1)
}
// [0 1 2 3 4 5 6 7]

append第二个参数不接受切片类型。
截图代码改成:

for _, v := range files {
    for _, urlInFile := range util.ReadFile(v) {
        urls = append(urls, urlInFile)
    }
}

或者自己定义一个合并Slice得方法


func MergeSlice(s1 []string, s2 []string) []string {
    slice := make([]string, len(s1)+len(s2))
    copy(slice, s1)
    copy(slice[len(s1):], s2)
    return slice
}

for _, v := range files {
    urls = MergeSlice(urls, util.ReadFile(v))
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏