diff --git a/docs/pointer.md b/docs/pointer.md index 6147574..fd221bb 100644 --- a/docs/pointer.md +++ b/docs/pointer.md @@ -147,8 +147,6 @@ func main() { } ``` ---- ord derad - ### UnwarpOrDefault diff --git a/docs/pointer_zh-CN.md b/docs/pointer_zh-CN.md index 5779759..9362203 100644 --- a/docs/pointer_zh-CN.md +++ b/docs/pointer_zh-CN.md @@ -1,6 +1,6 @@ # Pointer -pointer包支持一些指针类型的操作。 +pointer 包支持一些指针类型的操作。
@@ -25,6 +25,8 @@ import ( - [Of](#Of) - [Unwrap](#Unwrap) - [ExtractPointer](#ExtractPointer) +- [UnwarpOr](#UnwarpOr) +- [UnwarpOrDefault](#UnwarpOrDefault) @@ -63,7 +65,6 @@ func main() { } ``` - ### Unwrap返回传入指针指向的值。
@@ -133,4 +134,94 @@ func main() { // Output: // 1 } -``` \ No newline at end of file +``` + +### UnwarpOr + +返回指针的值,如果指针为零值,则返回fallback。
+ +函数签名: + +```go +UnwarpOr[T any](p *T, fallback T) T +``` + +示例: + +```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 +} +``` + +### UnwarpOrDefault + +返回指针的值,如果指针为零值,则返回相应零值。
+ +函数签名: + +```go +UnwarpOrDefault[T any](p *T) T +``` + +示例: + +```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 + // +} +```