syncmap

package
v2.20.0 Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2024 License: MIT Imports: 1 Imported by: 0

README

Manual

支持泛型的 sync.Map

创建一个 map 实例

func New[Tk any, Tv any]() *Map[Tk, Tv] 

API

用法等同 sync.Map 下同名方法,不赘述

func (r *Map[Tk, Tv]) Store(name Tk, value Tv)
func (r *Map[Tk, Tv]) LoadOrStore(name Tk, value Tv) (v Tv, ok bool)
func (r *Map[Tk, Tv]) Load(name Tk) (v Tv)
func (r *Map[Tk, Tv]) Range(fn func (Tk, Tv) bool)
func (r *Map[Tk, Tv]) LoadAndDelete(name Tk) (v Tv)
func (r *Map[Tk, Tv]) Delete(name Tk)
判断 Key 是否存在

补充方法,本质上是判断是否能进行 Load

func (r *Map[Tk, Tv]) Exist(name Tk) bool

示例

package main

import (
	"fmt"

	"github.com/o8x/jk/syncmap"
)

func main() {
	m := syncmap.New[string, int]()
	m.Store("k", 1)
	fmt.Println(m.Load("k"))

	m.Store("k", 9)
	fmt.Println(m.Load("k"))

	m.Store("k2", 2)
	fmt.Println(m.Load("k2"))

	m.LoadOrStore("k3", 3)
	fmt.Println(m.Load("k3"))
	m.LoadOrStore("k3", 5)
	fmt.Println(m.Load("k3"))

	fmt.Println(m.Exist("k3"))
	m.Delete("k3")
	fmt.Println(m.Exist("k3"))
}

运行它

> go run .
1
9
2
3
3
true
false

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Map

type Map[Tk any, Tv any] struct {
	// contains filtered or unexported fields
}

func New

func New[Tk any, Tv any]() *Map[Tk, Tv]

func (*Map[Tk, Tv]) Delete

func (r *Map[Tk, Tv]) Delete(name Tk)

func (*Map[Tk, Tv]) Exist

func (r *Map[Tk, Tv]) Exist(name Tk) bool

func (*Map[Tk, Tv]) Load

func (r *Map[Tk, Tv]) Load(name Tk) (v Tv)

func (*Map[Tk, Tv]) LoadAndDelete

func (r *Map[Tk, Tv]) LoadAndDelete(name Tk) (v Tv)

func (*Map[Tk, Tv]) LoadOrStore

func (r *Map[Tk, Tv]) LoadOrStore(name Tk, value Tv) (v Tv, ok bool)

func (*Map[Tk, Tv]) Range

func (r *Map[Tk, Tv]) Range(fn func(Tk, Tv) bool)

func (*Map[Tk, Tv]) Store

func (r *Map[Tk, Tv]) Store(name Tk, value Tv)

Jump to

Keyboard shortcuts

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