Création de tableaux booléens dans Go : alternatives aux boucles For
Lorsque vous travaillez avec des tableaux booléens dans Go, leur initialisation peut être une tâche courante. L'approche conventionnelle consiste à utiliser une boucle for pour définir chaque élément individuellement. Cependant, il existe d'autres moyens de réaliser cette initialisation sans recourir à des boucles.
Création de tableaux à valeur nulle
Une solution simple consiste à s'abstenir complètement d'utiliser une boucle for. . Les tableaux dans Go sont initialisés avec des valeurs nulles par défaut. Pour les tableaux booléens, cela signifie que tous les éléments seront définis sur false. Par conséquent, vous pouvez simplement déclarer un tableau de la taille souhaitée, et il sera initialisé avec tous les éléments définis sur false :
<code class="go">A := [n]bool{false, false, ..., false}</code>
Utilisation de littéraux composites
Composite Les littéraux offrent un moyen concis de créer et d'initialiser un tableau ou une tranche. Bien qu'ils nécessitent généralement plus de saisie qu'une boucle for, ils peuvent toujours fournir une solution pratique :
<code class="go">A := []bool{true, true, true}</code>
Raccourcir l'initialisation à l'aide de constantes
Si vous initialisez fréquemment des tableaux avec la même valeur, l'introduction d'une constante peut rationaliser le processus :
<code class="go">const T = true A := []bool{T, T, T}</code>
Logique alternative : stockage des valeurs négatives
Au lieu de stocker des valeurs positives dans le tableau, envisagez de stocker valeurs niées. Cela vous permet d'initialiser le tableau avec sa valeur zéro (tous faux) et d'interpréter faux comme "non présent" ou "non manquant" :
<code class="go">missings := make([]bool, 6) // All false // missing=false means not missing, means present</code>
Initialisation optimisée pour les grands tableaux
Pour les grands tableaux, la technique d'initialisation la plus efficace consiste à effectuer une opération "memset". Bien que Go ne dispose pas d'une fonction memset intégrée, la question suivante fournit une solution très efficace :
[Existe-t-il un analogue de memset dans Go ?](https://stackoverflow.com/questions/21376450/is -là-analogique-de-memset-in-go)
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!