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

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

WBOY
發布: 2024-02-08 22:21:09
轉載
553 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板