1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 12:52:28 +08:00
Files
lancet/docs/pointer_zh-CN.md
2023-06-30 10:31:22 +08:00

1.8 KiB

Pointer

pointer包支持一些指针类型的操作。

源码:

用法:

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

目录

文档

Of

返回传入参数的指针值。

函数签名:

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

示例:

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

返回传入指针指向的值。

函数签名:

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

示例:

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
}

ExtractPointer

返回传入interface的底层值。

函数签名:

func ExtractPointer(value any) any

示例:

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
}