arrays - 戈朗 : Is this an acceptable way to create a Slice from part of another Slice?

标签 arrays go slice

我四处搜索并没有找到另一个这样做的例子,但我无意中发现我能够通过简单地将另一个 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

推荐阅读:

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

关于arrays - 戈朗 : Is this an acceptable way to create a Slice from part of another Slice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43988866/

相关文章:

php - 如何在 PHP 中将数组转换为字符串?

arrays - 返回数组中元素的索引 Excel VBA

http - 在 Go 中使用 HTTP 与使用 TCP 套接字将文件下载/上传到服务器有什么优势?

multithreading - 如何在http中使用多个进程

python - 切片 numpy 数组时使用 python 的逻辑运算符

arrays - Variant数组和动态数组之间有哪些区别?

arrays - 如何将第二个 viewcontroller 文本字段值传递给第一个 viewcontroller 数组并在 swift4 中点击按钮时关闭

regex - 用于检测私有(private)和公共(public) RSA key 的正则表达式

python - 始终返回数组的 numpy 切片

swift - 如何使用原始索引枚举切片?