Rumah pembangunan bahagian belakang Golang Bagaimana untuk menggunakan penegasan dalam Go?

Bagaimana untuk menggunakan penegasan dalam Go?

May 11, 2023 pm 05:06 PM
pergi bahasa (pergi) penegasan penukaran jenis

Dalam bahasa Go, penegasan merujuk kepada menyemak sama ada syarat tertentu adalah benar semasa program dijalankan dan membuang pengecualian jika tidak. Penegasan sangat berguna apabila menyahpepijat program dan kod, membantu pembangun mengenal pasti masalah dengan cepat. Artikel ini akan memperkenalkan cara menggunakan penegasan dalam bahasa Go.

1. Bahasa Go tidak menyokong penegasan eksplisit

Bahasa Go itu sendiri tidak menyokong sintaks penegasan eksplisit seperti Java atau Python. Dalam Java atau Python, pembangun boleh menggunakan kata kunci assert untuk menyemak syarat tertentu dalam program. Tetapi dalam bahasa Go, kita perlu menulis kod sendiri secara manual untuk melaksanakan fungsi penegasan.

2. Gunakan panik dan pulihkan

Dalam bahasa Go, kita boleh menggunakan fungsi panik dan pulih untuk melaksanakan fungsi yang serupa dengan penegasan. Apabila syarat tertentu tidak dipenuhi, kami boleh menamatkan program melalui fungsi panik dan menghantar maklumat ralat kepada fungsi pulih dalam rantai panggilan. Berikut ialah contoh kod menggunakan fungsi panik dan pulih:

func divide(a, b int) int {
    if b == 0 {
        panic("division by zero")
    }
    return a / b
}

func test() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("recovered from ", r)
        }
    }()
    divide(10, 0)
    fmt.Println("this line will never be executed")
}

func main() {
    test()
    fmt.Println("program continues")
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan fungsi bahagi untuk mensimulasikan ralat bahagi dengan 0. Apabila melaksanakan fungsi bahagi, jika b ialah 0, fungsi panik akan dilaksanakan dan rentetan akan dihantar sebagai mesej ralat. Apabila fungsi bahagi dipanggil dalam fungsi ujian, panik dicetuskan kerana nilai b ialah 0. Program akan segera berhenti berjalan dan melaksanakan blok pernyataan tangguh dalam fungsi ujian. Fungsi pulih dipanggil dalam blok pernyataan ini untuk menangkap panik sebelumnya dan mencetak mesej ralat. Akhirnya, program akan terus melaksanakan penyata dalam fungsi utama.

3. Gunakan jenis ralat tersuai

Selain menggunakan fungsi panik dan pulih, kami juga boleh menggunakan jenis ralat tersuai untuk melaksanakan fungsi penegasan. Kita boleh mentakrifkan jenis ralat baharu untuk mewakili ralat di bawah keadaan tertentu dan menggunakan jenis ralat ini dalam atur cara untuk menyemak sama ada keadaan itu benar. Berikut ialah kod sampel menggunakan jenis ralat tersuai:

type DivisionByZeroError struct{}

func (e DivisionByZeroError) Error() string {
    return "division by zero"
}

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, DivisionByZeroError{}
    }
    return a / b, nil
}

func main() {
    res, err := divide(10, 0)
    if err != nil {
        if _, ok := err.(DivisionByZeroError); ok {
            fmt.Println("division by zero")
        } else {
            fmt.Println("unknown error")
        }
        return
    }
    fmt.Println(res)
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan jenis ralat baharu DivisionByZeroError dan melaksanakan kaedah Ralat untuk mengembalikan maklumat ralat. Dalam fungsi bahagi, jenis ralat ini dikembalikan apabila nilai b ialah 0. Apabila memanggil fungsi bahagi dalam fungsi utama, kami menggunakan berbilang tugasan untuk mendapatkan nilai pulangan dan maklumat ralat. Jika ralat bukan nol, ini bermakna terdapat beberapa jenis ralat dalam atur cara Kami menggunakan penegasan jenis untuk menentukan jenis ralat tertentu dan melaksanakan operasi yang berbeza berdasarkan jenis ralat yang berbeza.

4. Ringkasan

Bahasa Go itu sendiri tidak menyokong sintaks penegasan eksplisit, tetapi kami boleh mencapai fungsi seperti penegasan dengan menggunakan fungsi panik dan memulihkan atau jenis ralat tersuai. Apabila menggunakan kaedah ini untuk menyemak ralat masa jalan program, anda juga perlu mengendalikan pengecualian dengan berhati-hati untuk memastikan kestabilan dan kebolehpercayaan program.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan penegasan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan multithreading dalam Go? Bagaimana untuk menggunakan multithreading dalam Go? May 11, 2023 pm 04:36 PM

Go ialah bahasa pengaturcaraan yang berkuasa dengan sokongan serentak yang kaya. Menggunakan multithreading dalam Go adalah sangat mudah, dan ia merupakan ciri penting Go. Dalam artikel ini, kami akan meneroka cara menggunakan multithreading dalam Go dan sebab teknik ini sangat berguna. Apakah multithreading? Multithreading ialah gaya pengaturcaraan serentak yang membenarkan beberapa keping kod program dilaksanakan serentak dalam program yang sama. Kepingan kod ini dipanggil benang. Setiap utas mempunyai laluan pelaksanaannya sendiri, dan berbilang utas boleh dilaksanakan secara serentak. Kelebihan multithreading ialah ia

Cara menggunakan bahasa Go untuk memantau dan membimbangkan Cara menggunakan bahasa Go untuk memantau dan membimbangkan Aug 03, 2023 pm 05:40 PM

Cara menggunakan bahasa Go untuk memantau dan membimbangkan Pengenalan: Dengan populariti Internet, ketersediaan dan kestabilan sistem menjadi semakin penting. Apabila berlaku masalah dengan aplikasi kami, kami mungkin mahu dapat mengesannya dengan cepat dan mengambil tindakan tepat pada masanya. Oleh itu, pemantauan dan amaran adalah bahagian penting dalam membina aplikasi yang stabil. Artikel ini akan meneroka cara menggunakan bahasa Go untuk memantau dan membimbangkan serta menggunakan beberapa contoh kod untuk membantu pembaca memahami dan mengamalkan teknologi ini dengan lebih baik. 1. Pemantauan Sebelum kita mula memantau, kita perlu memutuskan perkara yang ingin kita pantau

Bagaimana untuk menggunakan nilai pulangan bernama dalam Go? Bagaimana untuk menggunakan nilai pulangan bernama dalam Go? May 11, 2023 pm 04:43 PM

Fungsi dalam Go boleh menggunakan nilai pulangan bernama. Ini bermakna anda boleh menamakan nilai yang dikembalikan oleh fungsi, dan anda tidak perlu mengembalikannya secara eksplisit dalam badan fungsi. Jadi, bagaimana anda menggunakan nilai pulangan bernama dalam Go? Artikel ini menerangkan sintaks dan contoh nilai pulangan yang dinamakan. Sintaks untuk nilai pulangan bernama Dalam bahasa Go, sintaks untuk nilai pulangan bernama sangat mudah. Dalam pengisytiharan fungsi, anda boleh menentukan nama sebelum jenis sebagai nama parameter, seperti ini: funcfoo()(xint,yint)

Bagaimana untuk menulis program Go yang mudah? Bagaimana untuk menulis program Go yang mudah? May 11, 2023 pm 03:15 PM

Go (juga dikenali sebagai Golang) ialah bahasa pengaturcaraan yang cantik, moden dan cekap. Ia mempunyai sintaks yang mudah digunakan dan perpustakaan yang kaya untuk rangkaian dan pengaturcaraan serentak. Dalam artikel ini, kita akan membincangkan cara menulis program Go yang mudah. Memasang Go Sebelum kita mula menulis program Go, kita perlu memasang Go. Laman web rasmi Go menyediakan pelbagai kaedah pemasangan: binari disediakan pada Windows, macOS dan Linux. Anda boleh melayari laman web https://golang.org/dl/

Mengapa program Go saya tidak boleh menyambung ke pangkalan data? Mengapa program Go saya tidak boleh menyambung ke pangkalan data? Jun 09, 2023 pm 07:52 PM

Apabila membangun dalam bahasa Go, kami sering melibatkan operasi menyambung ke pangkalan data. Walau bagaimanapun, dalam pembangunan sebenar, kami sering menghadapi masalah tidak dapat menyambung ke pangkalan data, yang bukan sahaja menjejaskan kecekapan kerja kami, tetapi juga membazirkan banyak masa dan tenaga. Jadi, mengapa program Go kami tidak boleh menyambung ke pangkalan data? Artikel ini akan menganalisis dan menjawab soalan ini. Sahkan parameter sambungan pangkalan data Jika anda tidak dapat menyambung ke pangkalan data, cara terbaik adalah untuk mengesahkan bahawa parameter sambungan adalah betul, termasuk alamat pangkalan data, nama pengguna, kata laluan dan pangkalan data.

Bagaimana untuk menggunakan penegasan dalam Go? Bagaimana untuk menggunakan penegasan dalam Go? May 11, 2023 pm 05:06 PM

Dalam bahasa Go, penegasan merujuk kepada menyemak sama ada syarat tertentu adalah benar semasa program berjalan dan membuang pengecualian jika tidak. Penegasan sangat berguna apabila menyahpepijat program dan kod, membantu pembangun mengenal pasti masalah dengan cepat. Artikel ini akan memperkenalkan cara menggunakan penegasan dalam bahasa Go. 1. Bahasa Go tidak menyokong pernyataan eksplisit Bahasa Go itu sendiri tidak menyokong sintaks penegasan eksplisit seperti Java atau Python. Dalam Java atau Python, pembangun boleh menggunakan kata kunci menegaskan

Ketahui kunci kepada masa untuk melakukan penukaran tersirat Ketahui kunci kepada masa untuk melakukan penukaran tersirat Jan 11, 2024 pm 12:43 PM

Perkara utama untuk dikuasai: Ketahui pengetahuan utama tentang jenis yang boleh ditukar secara tersirat Contoh kod khusus diperlukan, dalam pengaturcaraan, ialah operasi yang menukar nilai satu jenis kepada jenis lain secara automatik. Dalam sesetengah kes, bahasa pengaturcaraan melakukan penukaran jenis secara automatik tanpa memerlukan kod penukaran yang jelas. Ciri ini boleh menjadikan kod kami lebih ringkas dan fleksibel. Dalam artikel ini, saya akan memperkenalkan beberapa jenis penukaran tersirat dan pengetahuan utama yang biasa, dan memberikan contoh kod khusus. Penukaran tersirat jenis data primitif: Dalam kebanyakan bahasa pengaturcaraan, primitif

Bagaimana untuk menggunakan sokongan berbilang platform dalam Go? Bagaimana untuk menggunakan sokongan berbilang platform dalam Go? May 11, 2023 pm 05:19 PM

Go ialah bahasa pengaturcaraan yang sangat popular yang menyepadukan banyak ciri merentas platform, menjadikannya mudah untuk dijalankan pada sistem pengendalian yang berbeza. Jika anda ingin menulis kod Go yang berfungsi pada platform yang berbeza, maka anda perlu memahami cara menggunakan sokongan berbilang platform. Artikel ini akan memperkenalkan cara melaksanakan sokongan berbilang platform dalam Go. 1. Prinsip asas untuk menulis kod mudah alih Prinsip asas untuk menulis kod mudah alih adalah untuk mengelakkan kod yang bergantung pada platform. Dalam Go, ini bermakna anda harus mengelak daripada menggunakan ciri yang bergantung pada sistem pengendalian atau perkakasan tertentu. Sebagai contoh,

See all articles