Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Kembali daripada Fungsi Ibu Bapa dalam Go Selepas Fungsi Anak Dilaksanakan?

Bagaimanakah Saya Boleh Kembali daripada Fungsi Ibu Bapa dalam Go Selepas Fungsi Anak Dilaksanakan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-16 00:39:02153semak imbas

How Can I Return from a Parent Function in Go After a Child Function Executes?

Pulang daripada Fungsi Anak dalam Fungsi Ibu Bapa

Seseorang mungkin menghadapi situasi di mana mereka ingin kembali dari fungsi ibu bapa apabila memanggil fungsi kanak-kanak. Dalam senario ini, matlamatnya adalah untuk menamatkan pelaksanaan dalam fungsi induk apiEndpoint() apabila syarat tertentu dipenuhi dalam fungsi anak apiResponse().

Isunya

Menggunakan coretan kod yang disediakan:

func apiEndpoint() {
    if false {
        apiResponse("error")
        // Return execution in parent function
        // Skip execution of apiResponse("all good")
    }

    apiResponse("all good")
}

func apiResponse(message string) {
    // Returns message to user via JSON
}

Niatnya adalah untuk meminta apiResponse("error") menamatkan pelaksanaan apiEndpoint() supaya apiResponse("all good") tidak dilaksanakan. Walau bagaimanapun, tingkah laku lalai dalam Go ialah fungsi tidak boleh mengawal aliran pelaksanaan di luar skopnya.

Resolusi

Untuk mencapai hasil yang diingini, terdapat beberapa pendekatan:

1. Gunakan Penyata if-Else

Jika syaratnya cukup mudah, struktur if-else boleh digunakan untuk mengelakkan pernyataan pulangan yang jelas:

func apiEndpoint() {
    if someCondition {
        apiResponse("error")
    } else {
        apiResponse("all good")
    }
}

2. Kembali daripada Pemanggil Menggunakan Nilai

Jika kedua-dua fungsi mengembalikan nilai, anda boleh menggunakan satu baris kod untuk mengembalikan nilai yang sesuai daripada fungsi pemanggil:

func apiEndpoint() int {
    if someCondition {
        return apiResponse("error")
    }

    return apiResponse("all good")
}

func apiResponse(message string) int {
    return 1 // Return an int
}

Nota

Walaupun panik merupakan satu lagi pengecualian yang boleh menghentikan pelaksanaan, ia tidak dianggap sebagai penyelesaian yang sesuai dalam konteks ini dan harus dikhaskan untuk situasi luar biasa.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Kembali daripada Fungsi Ibu Bapa dalam Go Selepas Fungsi Anak Dilaksanakan?. 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