Golang:这是从另一个Slice的一部分创建Slice的可接受方式吗?

时间:2017-05-15 21:10:13

标签: arrays go slice

我已经四处寻找并且没有找到另一个这样做的例子但是我无意中发现我能够通过简单地将该片段传递给接受切片并返回该切片的函数来从另一个切片的片段创建切片切片。

示例:

   package main

import "fmt"

func makeSliceFrom(s []int) []int {
    return s
}

func main() {
    s := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    newS := makeSliceFrom(s[1:7])
    fmt.Println(newS)
}

我不是在问这是否有效,因为我知道它有效并且似乎运作良好,我问这是否得到支持或者有一些我不知道的无法预料的成本。我没有看到任何这样做的例子似乎很奇怪。

1 个答案:

答案 0 :(得分:0)

可以使用名为make的内置函数创建切片,该函数具有签名

func make([]T, len, cap) []T

推荐阅读:

https://blog.golang.org/go-slices-usage-and-internals