один более общий — Bitmask со всякими методами, а второй — частный случай предыдущего — AccessLevel. получается как-то так:
type Bitmask uint
func (m Bitmask) Has(f Bitmask) bool {...}
func (m *Bitmask) Add(f Bitmask) {...}
func (m *Bitmask) Remove(f Bitmask) {...}
func (m *Bitmask) Toggle(f Bitmask) {...}
type AccessLevel Bitmask
const (
AccessLevelFoo AccessLevel = 1 << iota
AccessLevelBar
AccessLevelBaz
)
func main() {
l := AccessLevel(0)
// type AccessLevel has no field or method Add
l.Add(AccessLevelFoo)
}
Как в таком случае лучше отнаследовать тип? через структуру?
type AccessLevel struct {
*Bitmask
}
Можно type AccessLevel struct { Bitmask }
Обсуждают сегодня