package comp import ( "errors" ) // var ( ErrInvalidLogicId = errors.New("Invalid logic id") ) type LogicId struct { funcId uint64 //999 cataId uint64 //99 subId uint64 //99 instId uint64 //99 gameId uint64 // } func Parse(logicId uint64) (*LogicId, error) { sid := &LogicId{} sid.instId = logicId % 100 sid.subId = logicId / 100 % 100 sid.cataId = logicId / 10000 % 100 sid.funcId = logicId / 1000000 sid.gameId = logicId - sid.instId if sid.funcId >= 1000 || sid.funcId <= 0 { return nil, ErrInvalidLogicId } return sid, nil } func (self *LogicId) GameId() uint64 { return self.gameId }