Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Operasi Bitmasking dan Bitwise dalam Golang Membantu Anda Mengurus Kebenaran Pengguna dengan Cekap?
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.
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.
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.
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!