Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Tatasusunan Saiz Tetap kepada Slice dalam Go?

Bagaimana untuk Menukar Tatasusunan Saiz Tetap kepada Slice dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-11-09 11:49:02288semak imbas

How to Convert a Fixed-Size Array to a Slice in Go?

Menukar Tatasusunan Saiz Tetap kepada Tatasusunan Bersaiz Pembolehubah dalam Go

Apabila bekerja dengan tatasusunan dalam Go, selalunya perlu menukar tatasusunan saiz tetap kepada pembolehubah -tatasusunan bersaiz (hirisan). Walau bagaimanapun, cubaan untuk menetapkan tatasusunan bersaiz tetap secara langsung kepada kepingan boleh mengakibatkan ralat, seperti yang dilihat dalam contoh di bawah:

package main

import (
    "fmt"
)

func main() {
    var a [32]byte
    b := []byte(a)
    fmt.Println(" %x", b)
}

Pengkompil akan membuang ralat:

./test.go:9: cannot convert a (type [32]byte) to type []byte

Untuk berjaya menukar tatasusunan saiz tetap kepada kepingan, anda boleh menggunakan ungkapan b := a[:]. Ini akan mencipta kepingan yang merujuk tatasusunan asas, tanpa membuat salinan:

b := a[:]

Sumber Tambahan:

Rujuk catatan blog berikut untuk perbincangan terperinci mengenai perbezaan antara tatasusunan dan kepingan dalam Go:

  • [Arrays vs Slices in Pergi](https://blog.logrocket.com/understanding-arrays-versus-slices-in-go/)

Atas ialah kandungan terperinci Bagaimana untuk Menukar Tatasusunan Saiz Tetap kepada Slice dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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