tags

package
v1.0.51 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 13, 2022 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Byte2Ints

func Byte2Ints[T constraints.Integer](n T, b byte) []T

Byte2Ints 字节码转换整数. nolint

func Int2Byte

func Int2Byte[T constraints.Integer](i T) (T, byte)

Int2Byte 整数转换字节码.

Types

type BitMap

type BitMap[T constraints.Integer] []byte

BitMap 位图.

Example
package main

import (
	"fmt"

	"github.com/xuender/oils/tags"
)

func main() {
	tag := tags.NewBitMap(1, 2, 33)

	fmt.Println(tag.Has(1))
	fmt.Println(tag.Has(3))
	fmt.Println(tag.Has(33))
	fmt.Println(tag)

}
Output:

true
false
true
1, 2, 33

func Intersection

func Intersection[T constraints.Integer](elems ...BitMap[T]) BitMap[T]

Intersection 交集. nolint

func NewBitMap

func NewBitMap[T constraints.Integer](elems ...T) BitMap[T]

NewBitMap 新建位图.

func (*BitMap[T]) Add

func (t *BitMap[T]) Add(elems ...T) BitMap[T]

Add 增加位图.

func (*BitMap[T]) AddBitMap

func (t *BitMap[T]) AddBitMap(elem BitMap[T]) BitMap[T]

AddBitMap 增加位图.

func (BitMap[T]) All

func (t BitMap[T]) All(elems ...T) bool

All 全部包含.

func (BitMap[T]) Any

func (t BitMap[T]) Any(elems ...T) bool

Any 包含任意.

func (BitMap[T]) Bytes

func (t BitMap[T]) Bytes() []byte

Bytes 字节码.

func (BitMap[T]) Count

func (t BitMap[T]) Count() int

Count 位图数量.

func (BitMap[T]) Del

func (t BitMap[T]) Del(elems ...T) BitMap[T]

Del 删除位图.

func (BitMap[T]) DelBitMap

func (t BitMap[T]) DelBitMap(elem BitMap[T]) BitMap[T]

DelBitMap 删除位图.

func (BitMap[T]) Has

func (t BitMap[T]) Has(tag T) bool

Has 包含位图.

func (BitMap[T]) Join

func (t BitMap[T]) Join(sep string) string

Join 集合连接.

func (*BitMap[T]) Load

func (t *BitMap[T]) Load(bs []byte)

Load 加载.

func (BitMap[T]) Slice

func (t BitMap[T]) Slice() []T

Slice 转换切片.

func (BitMap[T]) String

func (t BitMap[T]) String() string

String 字符串.

type Tag

type Tag uint64

Tag 标签.

标签内最多保存64个状态,数据库索引字段避免使用Tag,位运算无法使用索引加速.

Example
package main

import (
	"fmt"

	"github.com/xuender/oils/tags"
)

func main() {
	var tag tags.Tag

	tag.Add(0, 1, 2)
	fmt.Println(tag.Has(1))
	fmt.Println(tag.Has(3))

	tag.Add(3)
	fmt.Println(tag.Len())
	fmt.Println(tag.Slice())

	tag.Del(2)
	fmt.Println(tag.Len())

	fmt.Println(tag.All(3, 4))
	fmt.Println(tag.All(1, 3))
	fmt.Println(tag.Any(4, 5))
	fmt.Println(tag.Any(3, 4))

}
Output:

true
false
4
[0 1 2 3]
3
false
true
false
true

func (*Tag) Add

func (p *Tag) Add(nums ...int)

Add 增加标签.

func (Tag) All

func (p Tag) All(nums ...int) bool

All 全部包含.

func (Tag) Any

func (p Tag) Any(nums ...int) bool

Any 包含任意个.

func (*Tag) Del

func (p *Tag) Del(nums ...int)

Del 删除标签.

func (Tag) Has

func (p Tag) Has(num int) bool

Has 包含.

func (Tag) Len

func (p Tag) Len() int

Len 标签数量.

func (Tag) Slice

func (p Tag) Slice() []int

Slice 转切片.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL