日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

权限判断-位运算

發布時間:2025/7/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 权限判断-位运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我從簡書搬家了

本文原地址:原地址

角色權限判斷,這應該是大部分應用都有的功能,那么如何進行權限判斷?

這里說下我們用的思路,可能會比較low,各位看官別笑。

打個比方,我現在有A,B,C,D四個功能。要對某個賬戶是否具有這些功能權限做判斷。 我們有個list,里面存放著這個賬戶所有的權限。(list從哪來?當然是后臺請求回來啊!) A功能對應的權限是=>0,以此類推B=>1,C=>2,D=>3這樣子。

那么如果我有一個賬號擁有所有權限,list就是【0,1,2,3】,如果沒有B權限就是【0,2,3,4】這樣子,相信大家都應該明白我要表達的意思了。

那么要判斷是否擁有某個權限,這時候肯定就會說,遍歷一下list不就知道了?那如果權限比較多呢?而且你不覺得這樣更low么=。= 所以這個時候,我們可以使用位運算打成這個目的:

先說我們用來判斷的方法:

//判斷是否存在權限,permission是所有權限展示中的某個權限,只有一個&,不是兩個,別搞錯了hasPermission(permission) {return permission & GlobalValue.authValue} 復制代碼

再定義一個包含了所有權限的聲明

//所有權限列表展示 export let Permission = {A: Math.pow(2, 0), //A功能B: Math.pow(2, 1), //B功能C: Math.pow(2, 2), //C功能D: Math.pow(2, 3), //D功能... } 復制代碼

在我們和后臺請求拿到某個角色所包含的list的時候,對list做如下操作

if (authList && authList.length > 0) {let authValue = 0for (let i = 0; i < authList.length; i++) {let index = authList[i]let permission = Math.pow(2, index)authValue += permission}return authValue//我在代碼里GlobalValue.authValue = authValue存起來了,你們也找個全局的東西存起來就好} 復制代碼

P.S.如果看懂了就不用往下看了,不浪費大牛的時間~~

可能各位沒看懂老哥會很迷我在干嘛,這一步操作是干什么?別慌,讓我們往下看

我們舉一個例子來解釋這個問題。假設我當前賬號只有AC兩個功能,那么我拿到的authList是多少呢?很簡單:【0,2】

那么根據上面for循環的一頓操作,我這個返回的authValue會是多少呢?

2的0次方+2的2次方=5,這個數學就不多說了。。 那么現在我們可以知道,authValue = 5, 那么假設我現在要判斷當前賬戶是否存在A功能權限:

let isHave = this. hasPermission(Permission.A) 復制代碼

那么接下來重點來了,這就需要一丟丟離散數學的知識了 其實就是對Permission.A&5這一步進行計算 先轉成二進制再進行&運算

0 0 0 0 1& 0 0 1 0 1 ————————————————————————————————0 0 0 0 1結果是:2的0次方=1 復制代碼

0代表false,非0代表true 所以答案是,有A權限

那么判斷是否有B權限也是一樣的,判斷Permission.B&5

同樣先轉成二進制再進行&運算

0 0 0 1 0& 0 0 1 0 1 ————————————————————————————————0 0 0 0 0結果是:0 復制代碼

所以答案是,沒有B權限

相信講到這里應該都明白了。如果不明白&的操作,可以百度一下離散數學這個&的操作。其實說簡單一點就是1&1=1,0&任何=0(不保證對哈,就理解性的看下這句話,不是嚴格模式=。=) 所以綜上:在做任何權限判斷時,都可以使用這種位運算的方式來進行判斷。

其他沒了emmm

總結

以上是生活随笔為你收集整理的权限判断-位运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 神马久久久久久久 | 国产丝袜网站 | 亚洲第一欧美 | 欧美天堂| 免费在线观看成人 | 一卡二卡精品 | av免费的 | 精品妇女一区二区三区 | 在线看黄免费 | 97久久精品视频 | 中文字幕亚洲日本 | 高清欧美性猛交 | 99视频国产精品 | 日本视频免费在线播放 | www.97av| 亚洲成av人片一区二区 | 我色综合 | 91久久久久一区二区 | 尤物视频在线看 | 欧美我不卡 | 天堂av在线电影 | 日本欧美色图 | 成人三级视频 | 国产伦精品一区二区三区免费迷 | 欧美在线国产 | 日日干天天操 | 欧美色图30p | 国产另类ts人妖一区二区 | 国产成人精品一区二三区四区五区 | 91淫黄大片| 国产又粗又猛又黄又爽 | 久热国产精品视频 | 香蕉成人网 | 综合网激情 | 久久影视网 | 顶级黑人搡bbw搡bbbb搡 | 激情五月婷婷综合 | 国产精品久久毛片 | 国产精品18久久久久久无码 | 色综合天天 | 精品少妇无码av无码专区 | 91吃瓜今日吃瓜入口 | 天堂在线8 | 瑟瑟视频在线观看 | 亚洲黄色a级片 | 五月天激情婷婷 | 成人精品在线视频 | 国产精品96| 免费拍拍拍网站 | 不卡二区 | 亚洲国产精品免费 | 日韩精品一区二区电影 | 日韩欧美日韩 | 成人在线你懂的 | 中午字幕在线观看 | 91蝌蚪少妇| 91色漫| 日韩黄色片免费看 | www.毛片com| 国产精品久久久久久久久久久久久久久 | 巨大乳の揉んで乳榨り奶水 | 欧美第五页 | 麻豆免费观看视频 | 五月婷婷影院 | 狠狠爱五月婷婷 | 免费视频www在线观看网站 | 国产视频成人 | 老外毛片| 国产精品一区二三区 | 亚洲激情自拍偷拍 | 婷婷色伊人 | 香蕉视频传媒 | 久久精品夜色噜噜亚洲a∨ 中文字幕av网 | 久久av资源站 | 日本三不卡 | 国产成人精品免费视频 | 久久久久久久国产精品毛片 | 精品国产精品网麻豆系列 | 色网站女女 | 伊人久在线 | 韩日视频 | 国产精品后入内射日本在线观看 | 久久久久成人精品无码中文字幕 | av中文字幕观看 | 日韩黄色在线 | 无套内谢的新婚少妇国语播放 | 爱蜜臀av | 欧美怡春院 | 欧美激情成人在线 | 激情欧美综合 | 主播av在线 | 国产欧美精品一区二区在线播放 | 毛片网页| 69堂免费视频 | 91午夜精品亚洲一区二区三区 | juliaannxxxxx高清| 久久亚洲少妇 | 午夜一区二区三区在线观看 | 性色av无码久久一区二区三区 |