Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mengelak Penegasan Jenis Berulang dalam Suis Jenis Go?

Bagaimanakah Saya Boleh Mengelak Penegasan Jenis Berulang dalam Suis Jenis Go?

Susan Sarandon
Susan Sarandonasal
2024-12-13 13:51:12191semak imbas

How Can I Avoid Repetitive Type Assertions in Go Type Switches?

Mengelakkan Penegasan Jenis dalam Suis Jenis Go

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.

Masalahnya

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

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.

Contoh Dunia Sebenar

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.

Kesimpulan

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!

Kenyataan:
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