,我们约定,以这个字段(记为attr)的第一位,来代表该学生语文有没有通过测评(0否1是)
attr为当前该属性字段的值(从数据库里取出来的值). index为约定的第几位来标识当前业务,index从0...1位,又因为从0开始计数,故而index=0
setRs := set(0, 0) //将attr字段的最新值,记录进数据库的attr字段
// 查询阶段
//当需要获知该学生的语文是否通过时...查数据库,获取上面记录进的值(此时setRs即attr=1); 进而get方法,可知道是否通过(如果rs结果为1,则通过)
rs := get(setRs, 0)
_ = rs
}
func set...查数据库,获取其attr的值; 进而get方法,index字段为该科目约定的位置(语文为1,其index为0; 数学为2,其index为1),即可知道是否通过(如果rs结果为1,则通过)
sunMath...如需获取爽哥有无通过第60门课程,1152921504606846975 >> 59 & 1 = 1,即通过
如果将数据库这个attr字段设置为有符号的bigint类型,则最多可标识 64个不同业务的状态