Dalam Go, suis taip menyediakan cara yang mudah untuk mengendalikan pelbagai jenis objek dalam satu binaan. Walau bagaimanapun, penegasan jenis berulang dalam kes boleh menjadi membosankan dan bertele-tele. Artikel ini menangani isu ini dengan meneroka kaedah alternatif untuk menghapuskan keperluan untuk penegasan jenis eksplisit.
Pertimbangkan coretan kod berikut:
switch question.(type) { case interfaces.ComputedQuestion: handleComputedQuestion(question.(interfaces.ComputedQuestion), symbols) case interfaces.InputQuestion: handleInputQuestion(question.(interfaces.InputQuestion), symbols) }
Dalam ini kod, jenis pembolehubah soalan ditegaskan kepada sama ada antara muka.ComputedQuestion atau antara muka.InputQuestion dalam setiap kes. Penegasan jenis ini diperlukan untuk menghantar objek soalan dengan betul kepada fungsi yang sesuai.
Penyelesaian terletak pada memberikan hasil suis jenis kepada pembolehubah baharu, yang secara automatik memberikan jenis tegas:
switch question := question.(type) { case interfaces.ComputedQuestion: handleComputedQuestion(question, symbols) case interfaces.InputQuestion: handleInputQuestion(question, symbols) }
Dengan memberikan soalan := soalan.(taip) kepada pembolehubah soalan dalam suis jenis, jenis tegas yang betul ditetapkan secara automatik, menghapuskan keperluan untuk penegasan jenis eksplisit. Teknik ini meningkatkan kebolehbacaan kod dengan ketara dan mengurangkan potensi ralat.
Pertimbangkan contoh mudah berikut:
package main func main() { var num interface{} = 5 switch num := num.(type) { case int: println("num is an int", num) case string: println("num is a string", num) } }
Dalam contoh ini, nombor pembolehubah antara muka diberikan nilai int 5. Suis jenis memberikan num sebagai int dan mencetak pernyataan "num ialah int" dengan nilainya. Jika num diberikan rentetan, penyataan "num ialah rentetan" akan dicetak sebaliknya.
Dengan menggunakan teknik memberikan hasil suis jenis, pembangun boleh mengelakkan penggunaan berulang penegasan jenis dalam kes suis jenis dalam Go. Teknik ini memudahkan kod, mengurangkan ralat dan meningkatkan kebolehbacaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Penegasan Jenis Berulang dalam Suis Jenis Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!