Maison  >  Article  >  développement back-end  >  Golang - Si chaque cas de commutation est évalué, quel est l'ordre ?

Golang - Si chaque cas de commutation est évalué, quel est l'ordre ?

WBOY
WBOYavant
2024-02-08 22:21:09486parcourir

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

L'éditeur php Baicao est là pour répondre à une question sur Golang : "Si chaque cas dans le cas switch est évalué, quel est l'ordre dans Golang, l'ordre d'exécution des instructions switch est de haut en bas. Ceux ci-dessous ?" sont évalués dans l’ordre des cas dans le code. Une fois qu'un cas est mis en correspondance avec succès, le bloc de code correspondant sera exécuté, puis le programme sortira de l'instruction switch. S'il n'y a pas de cas correspondant, l'instruction par défaut (le cas échéant) sera exécutée. S'il n'y a pas d'instruction par défaut, l'instruction switch se terminera directement. Il s'agit des règles d'ordre et d'exécution des cas de commutation dans Golang.

Contenu de la question

Supposons que nous ayons un boîtier de commutation

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

Quel sera le résultat ?

J'ai entendu dire que Golang choisirait des expressions pseudo-aléatoires, mais je l'ai testé dans go-playground et j'ai découvert qu'il suivrait l'ordre de haut en bas, donc le résultat sera 1

Solution de contournement

Exécutez le premier avec Cases correspondant à l'instruction switch :

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

Lorsque plusieurs branches sont prêtes à continuer, une sélection pseudo-aléatoire se produit dans l'instruction select au lieu de dans l'instruction switch.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer