Maison > développement back-end > Golang > le corps du texte

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
Libérer: 2024-10-26 08:45:03
original
596 Les gens l'ont consulté

 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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!