Go 是否實作短路求值?
短路求值是指僅對 if 語句中的表達式進行求值的做法需要確定語句的結果。換句話說,如果 if 語句中的第一個表達式計算結果為 false,則不會計算其餘表達式。
Go 確實實現了短路計算。這可以用以下程式碼來說明:
package main import "fmt" func main() { for i := 0; i < 10; i++ { if testFunc(1) || testFunc(2) { // do nothing } } } func testFunc(i int) bool { fmt.Printf("function %d called\n", i) return true }
當執行此程式碼時,它將列印以下輸出:
$ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called $ function 1 called
如您所見,函數testFunc(2 ) 永遠不會會被調用,因為if 語句(testFunc(1)) 中的第一個表達式的計算結果為true。這顯示Go實現了短路評估。
以上是Go 在布林運算式中使用短路求值嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!