最新公告
  • 欢迎您光临码农资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!加入我们
  • 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)n", d)
        fmt.Printf("d len is: (%v)n", len(d))
        fmt.Printf("d cap is: (%v)n", cap(d))
    }

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

    正确答案

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

    想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
    本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
    如有侵权请发送邮件至1943759704@qq.com删除

    码农资源网 » Go 切片的用法
    • 7会员总数(位)
    • 25846资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 293稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情