intern

package standard library
go1.18.3 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2022 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Overview

Package intern lets you make smaller comparable values by boxing a larger comparable value (such as a 16 byte string header) down into a globally unique 8 byte pointer.

The globally unique pointers are garbage collected with weak references and finalizers. This package hides that.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Value

type Value struct {
	// contains filtered or unexported fields
}

A Value pointer is the handle to an underlying comparable value. See func Get for how Value pointers may be used.

func Get

func Get(cmpVal any) *Value

Get returns a pointer representing the comparable value cmpVal.

The returned pointer will be the same for Get(v) and Get(v2) if and only if v == v2, and can be used as a map key.

func GetByString

func GetByString(s string) *Value

GetByString is identical to Get, except that it is specialized for strings. This avoids an allocation from putting a string into an interface{} to pass as an argument to Get.

func (*Value) Get

func (v *Value) Get() any

Get returns the comparable value passed to the Get func that returned v.

Jump to

Keyboard shortcuts

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