Go 切片的用法

go 切片的用法

问题内容

我正在查看 sha1 相关代码 https://cs.opensource.google/go/go/+/refs/tags/go1.21.5:src/crypto/sha1/sha1.go;l=146-152

尤其是这一行 append(in, hash[:]…)

我不确定为什么使用 hash[:]…,而 hash… 似乎就足够了。

这是一段测试代码 https://go.dev/play/p/DaIa0X4KyeD

func main() {    s := make([]int, 2, 10)    s[0] = 1    s[1] = 2    d := []int{88}    d = append(d, s[:]...) // d = append(d, s...) seems to work the same    fmt.Printf("d is: (%v)", d)    fmt.Printf("d len is: (%v)", len(d))    fmt.Printf("d cap is: (%v)", cap(d))}

登录后复制

所以我的问题是 [:] 对于切片来说有什么意义?谢谢!

正确答案

hash 是一个数组(类型为 [Size]byte),而不是切片。 hash[:] 是一个切片 — 相当于 hash[0:len(hash)]。 … 表示法需要一个切片,因此它应用于切片 hash[:] 而不是数组 hash。

以上就是Go 切片的用法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2360838.html

(0)
上一篇 2025年3月1日 18:22:58
下一篇 2025年3月1日 18:23:11

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论