1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-07 06:02:27 +08:00

feat: add Of and Unwrap

This commit is contained in:
dudaodong
2023-06-02 11:48:17 +08:00
parent b1c6614549
commit 2f6ee84443
3 changed files with 83 additions and 2 deletions

View File

@@ -1,8 +1,25 @@
// Copyright 2023 dudaodong@gmail.com. All rights reserved.
// Use of this source code is governed by MIT license.
// Package pointer contains some util functions to operate go pointer.
package pointer
import "reflect"
// Of returns a pointer to the value `v`.
// Play: todo
func Of[T any](v T) *T {
return &v
}
// Unwrap returns the value from the pointer.
// Play: todo
func Unwrap[T any](p *T) T {
return *p
}
// ExtractPointer returns the underlying value by the given interface type
// Play: todo
func ExtractPointer(value any) any {
t := reflect.TypeOf(value)
v := reflect.ValueOf(value)