Rumah > pembangunan bahagian belakang > Golang > Mengapakah Penegasan Jenis Gagal Apabila Menghantar ke Alias ​​Jenis dalam Go?

Mengapakah Penegasan Jenis Gagal Apabila Menghantar ke Alias ​​Jenis dalam Go?

Barbara Streisand
Lepaskan: 2024-12-22 18:35:11
asal
656 orang telah melayarinya

Why Does Type Assertion Fail When Casting to a Type Alias in Go?

Menghantar ke Alias ​​Taip dalam Go

Masalah:

Dalam coretan contoh, penegasan jenis pertama berjaya dengan menyatakan secara eksplisit tandatangan fungsi. Walau bagaimanapun, dakwaan kedua, yang cuba menghantar kepada jenis alias somethingFuncy, panik. Mengapakah ini berlaku, dan adakah terdapat cara untuk menghantar ke tandatangan fungsi yang lebih panjang?

Penjelasan:

Bertentangan dengan tanggapan salah bahawa pemutus jenis terlibat di sini, Go hanya menawarkan penegasan jenis dan penukaran jenis. Tumpuan adalah pada penegasan jenis, yang digunakan dalam coretan yang disediakan.

Perbezaan utama antara penegasan jenis dan penukaran terletak pada kriteria yang digunakan untuk perbandingan. Dalam penukaran, seperti contoh dengan int dan MyInt, jenis asas dipertimbangkan. Walau bagaimanapun, dengan penegasan jenis, hanya jenis yang tepat diambil kira.

Untuk menghuraikan, dalam contoh di mana a adalah daripada jenis int, penegasan a.(MyInt) gagal kerana int tidak sama dengan MyInt, walaupun kedua-duanya berkongsi asas yang sama taip.

tl;dr:

Taip penegasan semak identiti jenis tepat, yang bermaksud alias jenis seperti somethingFuncy berbeza daripada func(int) bool. Oleh itu, pelakon kedua gagal.

Bonus:

Kod yang digunakan untuk mengesahkan identiti jenis dalam coretan disediakan untuk rujukan, mempamerkan perbandingan langsung yang terlibat dalam penegasan proses.

Atas ialah kandungan terperinci Mengapakah Penegasan Jenis Gagal Apabila Menghantar ke Alias ​​Jenis 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