Mengapa "ada" Menyebabkan Ralat "nama tidak diisytiharkan" Semasa Menggunakan Go 1.18?
Apabila cuba menggantikan "mana-mana" untuk " antara muka{}", pengguna Go 1.18 mungkin menghadapi ralat "nama yang tidak diisytiharkan: mana-mana (memerlukan versi go1.18 atau kemudian)." Ralat ini timbul disebabkan oleh ketidakpadanan antara versi Go yang dinyatakan dalam fail go.mod anda dan versi Go yang anda gunakan.
Kata kunci "mana-mana" telah diperkenalkan dalam Go 1.18. Untuk menggunakannya, fail go.mod anda mesti menyatakan versi Go 1.18 atau lebih baru. Jika fail go.mod anda mengisytiharkan versi di bawah 1.18, seperti 1.17, anda akan menghadapi ralat.
Penyelesaian:
Untuk menyelesaikan ralat ini, laraskan langkah anda .mod fail untuk menggambarkan versi Go yang anda gunakan (1.18 atau lebih tinggi). Contohnya, jika fail go.mod anda berbunyi:
module example.com/foo go 1.17
Ubah suai kepada:
module example.com/foo go 1.18
Perubahan ini membolehkan kod anda menggunakan kata kunci "mana-mana" dan mengelakkan ralat. Perlu diingat bahawa setiap fail go.mod modul mengawal versi Go yang digunakan untuk penyusunan. Pendekatan ini membolehkan pengarang modul menggunakan peningkatan bahasa secara beransur-ansur mengikut kadar pilihan mereka.
Untuk contoh praktikal, lawati pautan taman permainan berikut: https://go.dev/play/p/au6TtTvNsRy. Di sini, anda boleh mengedit fail go.mod untuk menunjukkan ralat dan penyelesaiannya.
Atas ialah kandungan terperinci Mengapa Adakah Go 1.18 Melaporkan 'nama yang tidak diisytiharkan: ada'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!