首頁  >  文章  >  後端開發  >  Golang - 如果 switch case 中的每個 case 都進行評估,那麼順序是什麼?

Golang - 如果 switch case 中的每個 case 都進行評估,那麼順序是什麼?

WBOY
WBOY轉載
2024-02-08 22:21:09486瀏覽

Golang - 如果 switch case 中的每个 case 都进行评估,那么顺序是什么?

php小編草在這裡為大家解答一個關於Golang的問題:「如果switch case 中的每個case 都進行評估,那麼順序是什麼?」在Golang中, switch語句的執行順序是從上到下的,也就是依照程式碼中case的順序進行評估。一旦某個case匹配成功,對應的程式碼區塊將被執行,然後程式會跳出switch語句。如果沒有符合的case,那麼會執行default語句(如果有的話),如果沒有default語句,switch語句將會直接結束。這就是Golang中switch case的順序和執行規則。

問題內容

假設我們有開關盒

switch {
  case true:
   fmt.Println(1)
  case true:
   fmt.Println(2)

會輸出什麼?

我聽說golang會選擇偽隨機表達式,但是我在go-playground中進行了測試,發現它會遵循從上到下的順序,因此輸出將為1

解決方法

執行第一個與switch 語句相符的case:

https://www.php.cn/link/77772713a7d7e02b10ca9bd90e4f6a31

當多個分支準備好繼續時,偽隨機選擇發生在 select 語句中,而不是發生在 switch 中。

以上是Golang - 如果 switch case 中的每個 case 都進行評估,那麼順序是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除