Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tambahkan elemen pada kepingan struct

Tambahkan elemen pada kepingan struct

王林
王林ke hadapan
2024-02-09 14:57:18779semak imbas

Tambahkan elemen pada kepingan struct

Editor PHP Youzi di sini untuk memperkenalkan anda kepada teknik yang hebat - melampirkan elemen pada kepingan struktur. Potongan struktur ialah struktur data yang digunakan dalam Golang Ia boleh menyimpan pelbagai jenis elemen dan mempunyai keupayaan untuk berkembang secara dinamik. Dengan menambahkan elemen pada kepingan struktur, kami boleh melanjutkan dan memanipulasi pengumpulan data dengan mudah, membolehkan pengaturcaraan yang lebih fleksibel dan cekap. Mari kita lihat cara menggunakan teknik ini untuk meningkatkan kemahiran pengaturcaraan kita!

Kandungan soalan

Saya cuba menambahkan elemen pada kepingan struct, tetapi ia mengembalikan ralat invalidappend, yang bermaksud parameter pertama yang saya lalui bukan kepingan.

Pautan untuk pergi ke taman permainan.

Kod adalah seperti berikut:

type Item struct {
  Attr string
}

type ItemsList []Item

type IItemsList interface {
  GetItemsList() ItemsList
  AddItem(Item)
}

func NewItemsList() IItemsList {
  return &ItemsList{}
}

func (il *ItemsList) GetItemsList() ItemsList {
  return *il
}

func (il *ItemsList) AddItem(i Item) {
  il = append(il, i)
}

Saya tidak tahu cara yang betul untuk melakukan operasi tambah ini.

Penyelesaian

Parameter pertama yang saya lalui bukan sekeping

Parameter pertama ialah penunjuk kepada kepingan.

type itemslist []item

func (il *itemslist) additem(i item) {
  il = append(il, i)
}

Parameter pertama ialah kepingan.

func (il *ItemsList) AddItem(i Item) {
    *il = append(*il, i)
}

https://www.php.cn/link/97fc9b260a90d9c0aca468d2e6536980

go Spesifikasi Bahasa Pengaturcaraan

Alamat Operator

Untuk operan x jenis penunjuk *t, pengalamatan tidak langsung *x mewakili pembolehubah jenis t yang ditunjuk oleh x.

Atas ialah kandungan terperinci Tambahkan elemen pada kepingan struct. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam