Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menaip Dengan Betul Tegaskan Secebis Nilai Antara Muka dalam Go?

Bagaimana untuk Menaip Dengan Betul Tegaskan Secebis Nilai Antara Muka dalam Go?

Linda Hamilton
Lepaskan: 2024-12-30 18:17:11
asal
790 orang telah melayarinya

How to Correctly Type Assert a Slice of Interface Values in Go?

Jenis Penegasan Nilai Slice Antara Muka

Apabila cuba menaip tegaskan sepotong nilai antara muka, seperti []Nod, kepada jenis lain, seperti []Simbol , anda mungkin menghadapi ralat "penegasan jenis tidak sah." Ralat ini timbul kerana kepingan adalah jenis yang berbeza dan bukan antara muka. Pemeriksaan jenis bergantung pada tanggapan bahawa jenis dinamik pembolehubah kekal tetap untuk jenis antara muka, tetapi bukan untuk kepingan atau jenis bukan antara muka yang lain.

Oleh itu, pernyataan berhujah.([]Simbol) dalam kod yang disediakan gagal. kerana args adalah jenis []Nod, yang bukan jenis antara muka. Untuk menaip assert dengan betul, anda harus terlebih dahulu menukar elemen hirisan kepada jenis yang diingini, seperti yang ditunjukkan dalam kod berikut:

symbols := make([]Symbol, len(args))
for i, arg := range args { symbols[i] = arg.(Symbol) }
fixed, rest := parseFormals(symbols)
Salin selepas log masuk

Kod yang diubah suai ini mencipta tatasusunan nilai Simbol dan berulang pada []Nod asal potong, taip menegaskan setiap elemen kepada Simbol. Selepas memperoleh []hirisan Simbol yang dikehendaki, anda boleh melakukan operasi yang diperlukan tanpa menghadapi ralat penegasan jenis.

Atas ialah kandungan terperinci Bagaimana untuk Menaip Dengan Betul Tegaskan Secebis Nilai Antara Muka 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