Dalam pengaturcaraan, penilaian litar pintas ialah teknik di mana ungkapan hanya dinilai jika perlu untuk menentukan hasil penyataan sekeliling . Ini sering digunakan dalam penyataan bersyarat, di mana penilaian berbilang syarat tidak diperlukan jika syarat terdahulu sudah palsu.
Go melaksanakan penilaian litar pintas untuk operator logik (&& dan ||), sama seperti banyak pengaturcaraan lain bahasa. Ini bermakna dalam pernyataan if, jurubahasa akan menilai keadaan dari kiri ke kanan dan berhenti sebaik sahaja keputusan diketahui.
Mengenai contoh kod yang disediakan, susunan penilaian syarat tidak menjejaskan prestasi program. Dalam Go, kedua-dua coretan kod akan berkelakuan dengan cara yang sama. Pengkompil akan menilai ungkapan dari kiri ke kanan dan membuat litar pintas penilaian sebaik sahaja ia menentukan hasilnya.
Untuk menunjukkan ini, pertimbangkan kod berikut:
package main import "fmt" func main() { var r *http.Request queries := make(map[string][]string) if r == nil || len(queries) == 0 || !isValidQueryParams(&queries) { fmt.Println("Invalid querystring") } }
Walaupun isValidQueryParams mempunyai lebih banyak overhed daripada r == nil dan len(queries) == 0, pengkompil akan menilai ungkapan dalam susunan dan litar pintas sebaik sahaja hasilnya jelas. Oleh itu, tiada perbezaan prestasi antara dua coretan kod dalam contoh anda.
Atas ialah kandungan terperinci Adakah Penilaian Litar pintas Go Memberi Impak Prestasi dalam Penyata Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!