Bagaimanakah Fungsi Anak Boleh Menjejaskan Perlaksanaan Fungsi Ibu Bapa?

Patricia Arquette
Lepaskan: 2024-11-16 06:55:03
asal
770 orang telah melayarinya

How Can Child Functions Affect Parent Function Execution?

Mengembalikan Kawalan dalam Fungsi Anak

Apabila memanggil fungsi anak daripada fungsi induk, pelaksanaan biasanya diteruskan dalam fungsi induk selepas anak fungsi kembali. Walau bagaimanapun, dalam beberapa situasi, kita mungkin mahu menamatkan pelaksanaan dalam fungsi induk berdasarkan hasil panggilan fungsi anak.

Pertimbangkan contoh berikut:

func apiEndpoint() {
    if false {
        apiResponse("error") // Call child function
        // Expect to end execution after apiResponse() call
    }

    apiResponse("all good")
}

func apiResponse(message string) {
    // Returns message to user via JSON
}
Salin selepas log masuk

Dalam contoh ini, kami mahu fungsi apiEndpoint menamatkan pelaksanaannya jika fungsi apiResponse dipanggil dengan mesej "ralat". Walau bagaimanapun, kod seperti sedia ada tidak mencapai matlamat ini.

Penghadan Fungsi Kanak-kanak

Keterbatasan utama di sini ialah fungsi kanak-kanak tidak boleh mengawal pelaksanaannya fungsi ibu bapa. Fungsi induk menentukan aliran pelaksanaannya sendiri.

Penyelesaian Alternatif

Terdapat cara alternatif untuk mencapai tingkah laku yang diingini:

  • Gunakan Blok if-else: Gantikan keadaan if dengan blok if-else:
func apiEndpoint() {
    if false {
        apiResponse("error")
    } else {
        apiResponse("all good")
    }
}
Salin selepas log masuk
  • Gunakan Nilai Pulangan: Jika anak berfungsi mengembalikan nilai, kita boleh menggunakannya sebagai nilai pulangan fungsi induk:
func apiEndpoint() string {
    if false {
        return apiResponse("error")
    }

    return apiResponse("all good")
}

func apiResponse(message string) string {
    return message
}
Salin selepas log masuk
  • Nota: Panic-recover bukanlah penyelesaian yang boleh dipercayai dalam hal ini senario.

Atas ialah kandungan terperinci Bagaimanakah Fungsi Anak Boleh Menjejaskan Perlaksanaan Fungsi Ibu Bapa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan