import{_ as p,o as l,c as o,k as s,a,X as n}from"./chunks/framework.6e839c56.js";const k=JSON.parse('{"title":"Pointer","description":"","frontmatter":{},"headers":[],"relativePath":"en/api/packages/pointer.md","filePath":"en/api/packages/pointer.md"}'),e={name:"en/api/packages/pointer.md"},t=s("h1",{id:"Pointer",tabindex:"-1"},[a("Pointer "),s("a",{class:"header-anchor",href:"#Pointer","aria-label":'Permalink to "Pointer"'},"​")],-1),c=s("p",null,"pointer contains some util functions to operate go pointer.",-1),r=s("div",{STYLE:"page-break-after: always;"},null,-1),y=s("h2",{id:"Source-",tabindex:"-1"},[a("Source: "),s("a",{class:"header-anchor",href:"#Source-","aria-label":'Permalink to "Source:"'},"​")],-1),F=s("ul",null,[s("li",null,[s("a",{href:"https://github.com/duke-git/lancet/blob/main/pointer/pointer.go",target:"_blank",rel:"noreferrer"},"https://github.com/duke-git/lancet/blob/main/pointer/pointer.go")])],-1),i=s("div",{STYLE:"page-break-after: always;"},null,-1),u=n(`

Usage:

go
import (
    "github.com/duke-git/lancet/v2/pointer"
)
import (
    "github.com/duke-git/lancet/v2/pointer"
)
`,2),A=s("div",{STYLE:"page-break-after: always;"},null,-1),d=n('

Index

',2),E=s("div",{STYLE:"page-break-after: always;"},null,-1),g=n(`

Documentation

Of

Returns a pointer to the pass value \`v\`.

Signature:

go
func Of[T any](v T) *T
func Of[T any](v T) *T

Example:Run

go
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
    result1 := pointer.Of(123)
    result2 := pointer.Of("abc")

    fmt.Println(*result1)
    fmt.Println(*result2)

    // Output:
    // 123
    // abc
}
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
    result1 := pointer.Of(123)
    result2 := pointer.Of("abc")

    fmt.Println(*result1)
    fmt.Println(*result2)

    // Output:
    // 123
    // abc
}

Unwrap

Returns the value from the pointer.

Signature:

go
func Unwrap[T any](p *T) T
func Unwrap[T any](p *T) T

Example:Run

go
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
    a := 123
    b := "abc"

    result1 := pointer.Unwrap(&a)
    result2 := pointer.Unwrap(&b)

    fmt.Println(result1)
    fmt.Println(result2)

    // Output:
    // 123
    // abc
}
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
    a := 123
    b := "abc"

    result1 := pointer.Unwrap(&a)
    result2 := pointer.Unwrap(&b)

    fmt.Println(result1)
    fmt.Println(result2)

    // Output:
    // 123
    // abc
}

UnwarpOr

Returns the value from the pointer or fallback if the pointer is nil.

Signature:

go
UnwarpOr[T any](p *T, fallback T) T
UnwarpOr[T any](p *T, fallback T) T

Example:Run

go
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
	a := 123
	b := "abc"

	var c *int
	var d *string

	result1 := pointer.UnwarpOr(&a, 456)
	result2 := pointer.UnwarpOr(&b, "abc")
	result3 := pointer.UnwarpOr(c, 456)
	result4 := pointer.UnwarpOr(d, "def")

	fmt.Println(result1)
	fmt.Println(result2)
	fmt.Println(result3)
	fmt.Println(result4)

	// Output:
	// 123
	// abc
	// 456
	// def
}
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
	a := 123
	b := "abc"

	var c *int
	var d *string

	result1 := pointer.UnwarpOr(&a, 456)
	result2 := pointer.UnwarpOr(&b, "abc")
	result3 := pointer.UnwarpOr(c, 456)
	result4 := pointer.UnwarpOr(d, "def")

	fmt.Println(result1)
	fmt.Println(result2)
	fmt.Println(result3)
	fmt.Println(result4)

	// Output:
	// 123
	// abc
	// 456
	// def
}

UnwarpOrDefault

Returns the value from the pointer or the default value if the pointer is nil.

Signature:

go
UnwarpOrDefault[T any](p *T) T
UnwarpOrDefault[T any](p *T) T

Example:Run

go
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
	a := 123
	b := "abc"

	var c *int
	var d *string

	result1 := pointer.UnwarpOrDefault(&a)
	result2 := pointer.UnwarpOrDefault(&b)
	result3 := pointer.UnwarpOrDefault(c)
	result4 := pointer.UnwarpOrDefault(d)

	fmt.Println(result1)
	fmt.Println(result2)
	fmt.Println(result3)
	fmt.Println(result4)

	// Output:
	// 123
	// abc
	// 0
	//
}
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
	a := 123
	b := "abc"

	var c *int
	var d *string

	result1 := pointer.UnwarpOrDefault(&a)
	result2 := pointer.UnwarpOrDefault(&b)
	result3 := pointer.UnwarpOrDefault(c)
	result4 := pointer.UnwarpOrDefault(d)

	fmt.Println(result1)
	fmt.Println(result2)
	fmt.Println(result3)
	fmt.Println(result4)

	// Output:
	// 123
	// abc
	// 0
	//
}

ExtractPointer

Returns the underlying value by the given interface type

Signature:

go
func ExtractPointer(value any) any
func ExtractPointer(value any) any

Example:Run

go
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
    a := 1
    b := &a
    c := &b
    d := &c

    result := pointer.ExtractPointer(d)

    fmt.Println(result)

    // Output:
    // 1
}
package main

import (
    "fmt"
    "github.com/duke-git/lancet/v2/pointer"
)

func main() {
    a := 1
    b := &a
    c := &b
    d := &c

    result := pointer.ExtractPointer(d)

    fmt.Println(result)

    // Output:
    // 1
}
`,31),h=[t,c,r,y,F,i,u,A,d,E,g];function f(m,b,B,v,D,C){return l(),o("div",null,h)}const _=p(e,[["render",f]]);export{k as __pageData,_ as default};