Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menambah Dua Keping []bait dengan betul dalam Go?

Bagaimana untuk Menambah Dua Keping []bait dengan betul dalam Go?

Susan Sarandon
Lepaskan: 2024-12-06 19:16:13
asal
730 orang telah melayarinya

How to Correctly Append Two []byte Slices in Go?

Bagaimanakah saya boleh Menggunakan Go append dengan Dua []bait Slices atau Arrays?

Dalam Go, menambahkan dua bait hirisan tatasusunan mungkin menghadapi ralat disebabkan jenis tidak sepadan. Berikut ialah pandangan yang lebih dekat dan pendekatan yang betul untuk mencapainya.

Masalah:

Apabila cuba menambah kepingan tatasusunan dua bait, ralat seperti "tidak boleh menggunakan [array] ( taip []uint8) sebagai jenis uint8 dalam lampiran" mungkin timbul. Ini berlaku kerana fungsi tambah menjangkakan hujah sepadan dengan jenis elemen hirisan.

Penyelesaian:

Untuk menyelesaikan isu ini, anda perlu menentukan jenis kepingan secara eksplisit menggunakan []T... sintaks untuk hujah akhir. Dalam kes ini, T ialah []bait.

Berikut ialah contoh:

package main

import (
    "fmt"
)

func main() {
    one := make([]byte, 2)
    two := make([]byte, 2)
    one[0] = 0x00
    one[1] = 0x01
    two[0] = 0x02
    two[1] = 0x03

    result := append(one[:], two[:]...)
    fmt.Println(result)
}
Salin selepas log masuk

Dalam kod ini, hasilnya akan dicetak sebagai "[0 1 2 3]", dengan berkesan menggabungkan kepingan tatasusunan dua bait. Notasi "..." memastikan bahawa dua[:] diluluskan sebagai hujah hirisan.

Nota Tambahan:

  • Apabila menambahkan dua keping jenis yang sama, tandatangan tambahan ialah: append(s []T, a ...T)
  • Nilai pulangan append ialah kepingan baharu, dan kepingan asal kekal tidak diubah.
  • Anda juga boleh menambahkan nilai bait individu menggunakan fungsi tambah, cth.: tambah(satu, 0x02, 0x03)

Dengan mengikuti garis panduan ini, anda boleh menambah kepingan tatasusunan berbilang bait dengan betul dalam Go.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Dua Keping []bait dengan betul dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan