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)
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!