位运算的应用
type ConfigFlag uint32
const (
HandleMode ConfigFlag = 1 << iota
FwMode
StrategyIdList
)
func (cf *ConfigFlag) setFlag(isSet bool, configFlag ConfigFlag) {
if isSet {
*cf = *cf | configFlag
} else {
*cf = *cf ^ configFlag
}
}
func (cf *ConfigFlag) isFlag(configFlag ConfigFlag) bool {
result := *cf & configFlag
return result == configFlag
}