我四处搜索并没有找到另一个这样做的例子,但我无意中发现我能够通过简单地将另一个 slice 的片段传递给接受 slice 并返回它的函数来从另一个 slice 的片段创建一个 slice 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)
}
我不是在问这是否有效,因为我知道它有效并且似乎运作良好,我是在问这是否得到支持或有一些我不知道的不可预见的成本。奇怪的是我还没有看到任何这样做的例子。
最佳答案
可以使用称为 make 的内置函数创建 slice ,该函数具有签名,
func make([]T, len, cap) []T
推荐阅读:
关于arrays - 戈朗 : Is this an acceptable way to create a Slice from part of another Slice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43988866/