Melalui Slice Antara Muka kepada Slice Antara Muka Serasi Berbeza
Dalam Go, anda mungkin menghadapi cabaran apabila cuba melepasi sekeping antara muka kepada fungsi yang menjangkakan sepotong antara muka yang berbeza tetapi serasi. Walaupun item tunggal boleh diluluskan dengan jayanya, kepingan antara muka asal mungkin gagal.
Sebagai contoh, jika anda mempunyai dua antara muka, A dan B, di mana A termasuk B, dan pelaksanaan konkrit A yang juga memenuhi B , anda mungkin menghadapi masalah ini. Menghantar item individu jenis A kepada fungsi yang mengharapkan io.Reader akan berfungsi, tetapi cuba menghantar kepingan A kepada fungsi yang menjangkakan []io.Reader akan gagal.
Ini kerana Go adalah statik bahasa taip dan tidak membenarkan penukaran jenis tersirat. Untuk menyelesaikan isu ini, anda mesti membuat kepingan baharu jenis yang dijangkakan dan menetapkan elemen daripada kepingan asal secara manual. Dalam contoh yang diberikan, mesej ralat mencadangkan bahawa []A tidak boleh diberikan terus kepada []io.Reader.
Oleh itu, penyelesaian yang disyorkan ialah membuat kepingan baharu []io.Reader dan menyalin elemen daripada []A hirisan secara manual. Ini memastikan bahawa fungsi menerima jenis hirisan yang betul seperti yang diharapkan.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Sepotong Satu Antara Muka kepada Fungsi Mengharapkan Sepotong Antara Muka Serasi tetapi Berbeza dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!