Rumah > pembangunan bahagian belakang > Golang > Cara menggunakan kepingan Go

Cara menggunakan kepingan Go

PHPz
Lepaskan: 2024-02-05 21:57:12
ke hadapan
462 orang telah melayarinya

Go 切片的用法

Kandungan soalan

Saya sedang melihat kod berkaitan sha1 https://cs.opensource.google/go/go/+/refs/tags/go1.21.5:src/crypto/sha1/sha1.go ;l =146-152

Terutama baris ini append(in, hash[:]...)

Saya tidak pasti mengapa menggunakan hash[:]...,而 hash... nampaknya sudah mencukupi.

Ini ialah kod ujian 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))
}
Salin selepas log masuk

Jadi soalan saya ialah apakah maksud [:] untuk menghiris? Terima kasih! [:] 对于切片来说有什么意义?谢谢!


正确答案


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

Jawapan betul

🎜🎜cincang ialah tatasusunan (daripada jenis [Saiz]bait), bukan sekeping. hash[:] ialah kepingan — bersamaan dengan hash[0:len(hash)]. Notasi ... memerlukan hirisan, jadi ia digunakan pada hirisan hash[:] dan bukannya tatasusunan hash. 🎜

Atas ialah kandungan terperinci Cara menggunakan kepingan Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan