Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Operasi Bitmasking dan Bitwise dalam Golang Membantu Anda Mengurus Kebenaran Pengguna dengan Cekap?

Bagaimanakah Operasi Bitmasking dan Bitwise dalam Golang Membantu Anda Mengurus Kebenaran Pengguna dengan Cekap?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 08:45:03582semak imbas

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

Bitmasking dan Operasi Bitwise di Golang

Bitmasking dan operasi bitwise ialah teknik penting untuk bekerja dengan data binari dan cekap melaksanakan operasi khusus dalam pengaturcaraan.

Pertimbangkan kod berikut:

<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>

Dalam kod ini, anda mentakrifkan beberapa bitmask malar menggunakan operator peralihan bit (<<), di mana setiap bit mewakili peranan atau kebenaran tertentu.

Bitmasking

Peranan pembolehubah diberikan hasil daripada operasi ATAU bitwise antara bitmasks isAdmin, canSeeFinancials dan canSeeEurope. Ini menghasilkan nilai perduaan di mana bit yang mewakili peranan yang dipilih ditetapkan kepada 1, membolehkan anda menyemak dengan cepat sama ada pengguna mempunyai berbilang peranan.

Bitwise AND dan Masking

Ungkapan ialah Admin & roles melakukan operasi AND bitwise antara bitmask isAdmin dan pembolehubah peranan. Nilai binari yang terhasil dibandingkan dengan bitmask isAdmin menggunakan operator kesamarataan (==). Jika bit isAdmin ditetapkan dalam pembolehubah peranan (menunjukkan pengguna mempunyai keistimewaan pentadbir), hasilnya dinilai kepada benar.

Perbandingan lwn. Masking

Apabila anda membandingkan peranan terus kepada isAdmin menggunakan peranan == isAdmin, anda sedang menyemak sama ada keseluruhan nilai binari peranan adalah sama dengan isAdmin. Ini hanya akan benar jika peranan hanya mengandungi peranan isAdmin dan tiada peranan lain.

Dalam contoh yang diberikan, apabila peranan merangkumi berbilang peranan, membandingkan peranan == isAdmin menilai kepada palsu kerana perwakilan binari peranan mengandungi tambahan bit.

Dengan menggunakan operasi bitmasking dan bitwise, anda boleh menyemak dengan cekap dan padat untuk peranan atau kebenaran tertentu dalam satu pembolehubah, menjadikan kod anda lebih ringkas dan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Operasi Bitmasking dan Bitwise dalam Golang Membantu Anda Mengurus Kebenaran Pengguna dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn