Maison  >  Article  >  développement back-end  >  Comment le masquage de bits et les opérations au niveau du bit dans Golang peuvent-ils vous aider à gérer efficacement les autorisations des utilisateurs ?

Comment le masquage de bits et les opérations au niveau du bit dans Golang peuvent-ils vous aider à gérer efficacement les autorisations des utilisateurs ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 08:45:03582parcourir

 How can Bitmasking and Bitwise Operations in Golang Help You Efficiently Manage User Permissions?

Le masquage de bits et les opérations au niveau du bit dans Golang

Le masquage de bits et les opérations au niveau du bit sont des techniques essentielles pour travailler avec des données binaires et effectuer efficacement des opérations spécifiques en programmation.

Considérez le code suivant :

<code class="go">package main

import (
    "fmt"
)

const (
    isAdmin = 1 << iota
    isHeadquarters
    canSeeFinancials
    
    canSeeAfrica
    canSeeAsia
    canSeeEurope
    canSeeNorthAmerica
    canSeeSouthAmerica
)

func main() {
    var roles byte = isAdmin | canSeeFinancials | canSeeEurope
    fmt.Printf ("%b\n", roles)
    fmt.Printf ("Is Admin? %v\n", isAdmin & roles == isAdmin)
}</code>

Dans ce code, vous définissez plusieurs masques de bits constants à l'aide de l'opérateur de décalage de bits (<<), où chaque bit représente un rôle ou une autorisation spécifique.

Masquage de bits

Les rôles variables se voient attribuer le résultat d'une opération OU au niveau du bit entre les masques de bits isAdmin, canSeeFinancials et canSeeEurope. Il en résulte une valeur binaire où les bits représentant les rôles sélectionnés sont mis à 1, vous permettant de vérifier rapidement si un utilisateur possède plusieurs rôles.

ET au niveau bit et masquage

L'expression estAdmin & rôles effectue une opération ET au niveau du bit entre le masque de bits isAdmin et la variable de rôles. La valeur binaire résultante est comparée au masque de bits isAdmin à l'aide de l'opérateur d'égalité (==). Si le bit isAdmin est défini dans la variable rôles (indiquant que l'utilisateur dispose des privilèges d'administrateur), le résultat est évalué à vrai.

Comparaison par rapport au masquage

Lorsque vous comparez les rôles directement à isAdmin à l'aide de rôles == isAdmin, vous vérifiez si la valeur binaire entière des rôles est égale à isAdmin. Cela ne serait vrai que si les rôles contenaient uniquement le rôle isAdmin et aucun autre rôle.

Dans l'exemple donné, où les rôles incluent plusieurs rôles, la comparaison des rôles == isAdmin est évaluée comme fausse car la représentation binaire des rôles contient des rôles supplémentaires. bits.

En utilisant le masquage de bits et les opérations au niveau du bit, vous pouvez vérifier de manière efficace et concise des rôles ou des autorisations spécifiques au sein d'une seule variable, rendant votre code plus concis et efficace.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn