Rumah > pembangunan bahagian belakang > Golang > Mengapa saya mendapat \'antara muka tanpa kaedah\' apabila mengakses struct tanpa nama dalam Go?

Mengapa saya mendapat \'antara muka tanpa kaedah\' apabila mengakses struct tanpa nama dalam Go?

Patricia Arquette
Lepaskan: 2024-11-04 04:23:01
asal
887 orang telah melayarinya

Why do I get

Memahami "antara muka tanpa kaedah" dalam Go

Dalam kod anda, anda mengalami ralat "jenis antara muka {} ialah antara muka tanpa kaedah" apabila cuba mengakses medan daripada struct tanpa nama yang dihantar ke fungsi. Untuk memahami ralat ini, adalah penting untuk memahami konsep antara muka dalam Go.

Antara muka dalam Go ialah jenis yang mentakrifkan satu set kaedah yang mesti dilaksanakan oleh jenis konkrit. Walau bagaimanapun, dalam kes anda, antara muka yang anda gunakan ialah "antara muka kosong" yang dilambangkan dengan antara muka {}. Antara muka kosong tidak mempunyai sebarang kaedah dan boleh menyimpan nilai apa-apa jenis, menjadikannya jenis universal.

Akses Medan Struktur Tanpa Nama

Untuk mengakses medan struct tanpa nama diserahkan kepada NewJob, anda perlu menaip menegaskannya kepada jenis yang serasi sebelum anda boleh mengakses medannya. Penegasan jenis membolehkan anda menukar antara muka kosong kepada jenis konkrit tertentu.

Kod Dibetulkan

<code class="go">id := v.(struct{Id int}).Id</code>
Salin selepas log masuk

Dalam kod yang diperbetulkan ini, kami menaip menegaskan antara muka v kepada struct dengan medan Id. Ini membolehkan kami mengakses medan Id dan program akan berjalan seperti yang diharapkan.

Ingat bahawa penegasan jenis harus digunakan dengan bijak kerana ia boleh membawa kepada ralat masa jalan jika penegasan jenis gagal.

Atas ialah kandungan terperinci Mengapa saya mendapat \'antara muka tanpa kaedah\' apabila mengakses struct tanpa nama 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