diff --git a/datastructure/optional/optional.go b/datastructure/optional/optional.go index ab6d62d..663c660 100644 --- a/datastructure/optional/optional.go +++ b/datastructure/optional/optional.go @@ -10,8 +10,8 @@ type Optional[T any] struct { mu *sync.RWMutex } -// Empty returns an empty Optional instance. -func Empty[T any]() Optional[T] { +// Default returns an default Optional instance. +func Default[T any]() Optional[T] { return Optional[T]{mu: &sync.RWMutex{}} } @@ -20,29 +20,29 @@ func Of[T any](value T) Optional[T] { return Optional[T]{value: &value, mu: &sync.RWMutex{}} } -// OfNullable returns an Optional for a given value, which may be nil. -func OfNullable[T any](value *T) Optional[T] { +// FromNillable returns an Optional for a given value, which may be nil. +func FromNillable[T any](value *T) Optional[T] { if value == nil { - return Empty[T]() + return Default[T]() } return Optional[T]{value: value, mu: &sync.RWMutex{}} } -// IsPresent checks if there is a value present. -func (o Optional[T]) IsPresent() bool { +// IsNotNil checks if there is a value present. +func (o Optional[T]) IsNotNil() bool { o.mu.RLock() defer o.mu.RUnlock() return o.value != nil } -// IsEmpty checks if the Optional is empty. -func (o Optional[T]) IsEmpty() bool { - return !o.IsPresent() +// IsNil checks if the Optional is nil. +func (o Optional[T]) IsNil() bool { + return !o.IsNotNil() } -// IfPresent performs the given action with the value if a value is present. -func (o Optional[T]) IfPresent(action func(value T)) { +// IfNotNil performs the given action with the value if a value is not nil. +func (o Optional[T]) IfNotNil(action func(value T)) { o.mu.RLock() defer o.mu.RUnlock() @@ -51,20 +51,20 @@ func (o Optional[T]) IfPresent(action func(value T)) { } } -// IfPresentOrElse performs the action with the value if present, otherwise performs the empty-based action. -func (o Optional[T]) IfPresentOrElse(action func(value T), emptyAction func()) { +// IfNotNilOrElse performs the action with the value if present, otherwise performs the fallback action. +func (o Optional[T]) IfNotNilOrElse(action func(value T), fallbackAction func()) { o.mu.RLock() defer o.mu.RUnlock() if o.value != nil { action(*o.value) } else { - emptyAction() + fallbackAction() } } -// Get returns the value if present, otherwise panics. -func (o Optional[T]) Get() T { +// Unwarp returns the value if not nil, otherwise panics. +func (o Optional[T]) Unwarp() T { o.mu.RLock() defer o.mu.RUnlock() @@ -74,7 +74,7 @@ func (o Optional[T]) Get() T { return *o.value } -// OrElse returns the value if present, otherwise returns other. +// OrElse returns the value if is not nil, otherwise returns other. func (o Optional[T]) OrElse(other T) T { o.mu.RLock() defer o.mu.RUnlock() @@ -85,24 +85,24 @@ func (o Optional[T]) OrElse(other T) T { return other } -// OrElseGet returns the value if present, otherwise invokes supplier and returns the result. -func (o Optional[T]) OrElseGet(supplier func() T) T { +// OrElseGet returns the value if is not nil, otherwise invokes action and returns the result. +func (o Optional[T]) OrElseGet(action func() T) T { o.mu.RLock() defer o.mu.RUnlock() if o.value != nil { return *o.value } - return supplier() + return action() } -// OrElseThrow returns the value if present, otherwise returns an error. -func (o Optional[T]) OrElseThrow(errorSupplier func() error) (T, error) { +// OrElseTrigger returns the value if present, otherwise returns an error. +func (o Optional[T]) OrElseTrigger(errorHandler func() error) (T, error) { o.mu.RLock() defer o.mu.RUnlock() if o.value == nil { - return *new(T), errorSupplier() + return *new(T), errorHandler() } return *o.value, nil } diff --git a/datastructure/optional/optional_test.go b/datastructure/optional/optional_test.go index 0851887..461b4e3 100644 --- a/datastructure/optional/optional_test.go +++ b/datastructure/optional/optional_test.go @@ -7,11 +7,11 @@ import ( "github.com/duke-git/lancet/v2/internal" ) -func TestEmpty(t *testing.T) { +func TestDefault(t *testing.T) { assert := internal.NewAssert(t, "TestEmpty") - opt := Empty[int]() + opt := Default[int]() - assert.ShouldBeTrue(opt.IsEmpty()) + assert.ShouldBeTrue(opt.IsNil()) } func TestOf(t *testing.T) { @@ -19,30 +19,30 @@ func TestOf(t *testing.T) { value := 42 opt := Of(value) - assert.ShouldBeTrue(opt.IsPresent()) - assert.Equal(opt.Get(), value) + assert.ShouldBeTrue(opt.IsNotNil()) + assert.Equal(opt.Unwarp(), value) } -func TestOfNullable(t *testing.T) { +func TestFromNillable(t *testing.T) { assert := internal.NewAssert(t, "TestOfNullable") var value *int = nil - opt := OfNullable(value) + opt := FromNillable(value) - assert.ShouldBeFalse(opt.IsPresent()) + assert.ShouldBeFalse(opt.IsNotNil()) value = new(int) *value = 42 - opt = OfNullable(value) + opt = FromNillable(value) - assert.ShouldBeTrue(opt.IsPresent()) + assert.ShouldBeTrue(opt.IsNotNil()) } func TestOrElse(t *testing.T) { assert := internal.NewAssert(t, "TestOrElse") - optEmpty := Empty[int]() + optDefault := Default[int]() defaultValue := 100 - val := optEmpty.OrElse(defaultValue) + val := optDefault.OrElse(defaultValue) assert.Equal(val, defaultValue) optWithValue := Of(42) @@ -53,72 +53,72 @@ func TestOrElse(t *testing.T) { func TestOrElseGetHappyPath(t *testing.T) { assert := internal.NewAssert(t, "TestOrElseGetHappyPath") optWithValue := Of(42) - supplier := func() int { return 100 } + action := func() int { return 100 } - val := optWithValue.OrElseGet(supplier) + val := optWithValue.OrElseGet(action) assert.Equal(val, 42) } func TestOrElseGet(t *testing.T) { assert := internal.NewAssert(t, "TestOrElseGet") - optEmpty := Empty[int]() - supplier := func() int { return 100 } + optDefault := Default[int]() + action := func() int { return 100 } - val := optEmpty.OrElseGet(supplier) - assert.Equal(val, supplier()) + val := optDefault.OrElseGet(action) + assert.Equal(val, action()) } -func TestOrElseThrow(t *testing.T) { - assert := internal.NewAssert(t, "TestOrElseThrow") - optEmpty := Empty[int]() - _, err := optEmpty.OrElseThrow(func() error { return errors.New("no value") }) +func TestOrElseTrigger(t *testing.T) { + assert := internal.NewAssert(t, "OrElseTrigger") + optDefault := Default[int]() + _, err := optDefault.OrElseTrigger(func() error { return errors.New("no value") }) assert.Equal(err.Error(), "no value") optWithValue := Of(42) - val, err := optWithValue.OrElseThrow(func() error { return errors.New("no value") }) + val, err := optWithValue.OrElseTrigger(func() error { return errors.New("no value") }) assert.IsNil(err) assert.Equal(val, 42) } -func TestIfPresent(t *testing.T) { - assert := internal.NewAssert(t, "TestIfPresent") +func TestIfNotNil(t *testing.T) { + assert := internal.NewAssert(t, "IfNotNil") called := false action := func(value int) { called = true } - optEmpty := Empty[int]() - optEmpty.IfPresent(action) + optDefault := Default[int]() + optDefault.IfNotNil(action) assert.ShouldBeFalse(called) called = false // Reset for next test optWithValue := Of(42) - optWithValue.IfPresent(action) + optWithValue.IfNotNil(action) assert.ShouldBeTrue(called) } -func TestIfPresentOrElse(t *testing.T) { - assert := internal.NewAssert(t, "TestIfPresentOrElse") +func TestIfNotNilOrElse(t *testing.T) { + assert := internal.NewAssert(t, "TestIfNotNilOrElse") // Test when value is present calledWithValue := false valueAction := func(value int) { calledWithValue = true } - emptyAction := func() { t.Errorf("Empty action should not be called when value is present") } + fallbackAction := func() { t.Errorf("Empty action should not be called when value is present") } optWithValue := Of(42) - optWithValue.IfPresentOrElse(valueAction, emptyAction) + optWithValue.IfNotNilOrElse(valueAction, fallbackAction) assert.ShouldBeTrue(calledWithValue) // Test when value is not present calledWithEmpty := false valueAction = func(value int) { t.Errorf("Value action should not be called when value is not present") } - emptyAction = func() { calledWithEmpty = true } + fallbackAction = func() { calledWithEmpty = true } - optEmpty := Empty[int]() - optEmpty.IfPresentOrElse(valueAction, emptyAction) + optDefault := Default[int]() + optDefault.IfNotNilOrElse(valueAction, fallbackAction) assert.ShouldBeTrue(calledWithEmpty) } @@ -133,19 +133,19 @@ func TestGetWithPanicStandard(t *testing.T) { r := recover() assert.IsNil(r) }() - val := optWithValue.Get() + val := optWithValue.Unwarp() if val != 42 { - t.Errorf("Expected Get to return 42, got %v", val) + t.Errorf("Expected Unwarp to return 42, got %v", val) } }() // Test when value is not present - optEmpty := Empty[int]() + optDefault := Default[int]() func() { defer func() { r := recover() assert.IsNotNil(r) }() - _ = optEmpty.Get() + _ = optDefault.Unwarp() }() } diff --git a/docs/api/packages/datastructure/optional.md b/docs/api/packages/datastructure/optional.md index 303823d..ad7e283 100644 --- a/docs/api/packages/datastructure/optional.md +++ b/docs/api/packages/datastructure/optional.md @@ -22,17 +22,16 @@ import ( ## 目录 - [Of](#Of) -- [OfNullable](#OfNullable) -- [Empty](#Empty) -- [IsPresent](#IsPresent) -- [IsEmpty](#IsEmpty) -- [IfPresent](#IfPresent) -- [IfPresentOrElse](#IfPresentOrElse) -- [Get](#Get) +- [FromNillable](#FromNillable) +- [Default](#Default) +- [IsNotNil](#IsNotNil) +- [IsNil](#IsNil) +- [IsNotNil](#IsNotNil) +- [IfNotNilOrElse](#IfPresentOrElse) +- [Umwarp](#Umwarp) - [OrElse](#OrElse) - [OrElseGet](#OrElseGet) -- [OrElseThrow](#OrElseThrow) - +- [OrElseTrigger](#OrElseTrigger)
@@ -68,14 +67,13 @@ func main() { } ``` -### OfNullable - +### FromNillable

返回一个包含给定值的Optional,该值可能为空 (nil)。

函数签名: ```go -func OfNullable[T any](value *T) Optional[T] +func FromNillable[T any](value *T) Optional[T] ``` 示例: @@ -89,15 +87,15 @@ import ( func main() { var value *int = nil - opt := optional.OfNullable(value) + opt := optional.FromNillable(value) - fmt.Println(opt.IsPresent()) + fmt.Println(opt.IsNotNil()) value = new(int) *value = 42 - opt = optional.OfNullable(value) + opt = optional.FromNillable(value) - fmt.Println(opt.IsPresent()) + fmt.Println(opt.IsNotNil()) // Output: @@ -107,14 +105,13 @@ func main() { ``` -### Empty - +### Default

返回一个空Optional实例。

函数签名: ```go -func Empty[T any]() Optional[T] +func Default[T any]() Optional[T] ``` 示例: @@ -127,8 +124,8 @@ import ( ) func main() { - optEmpty := OfNullable.Empty[int]() - fmt.Println(optEmpty.IsEmpty()) + optDefault := optional.Default[int]() + fmt.Println(optDefault.IsNil()) // Output: // true @@ -136,14 +133,13 @@ func main() { ``` -### IsEmpty - +### IsNil

验证Optional是否为空。

函数签名: ```go -func (o Optional[T]) IsEmpty() bool +func (o Optional[T]) IsNil() bool ``` 示例: @@ -156,23 +152,21 @@ import ( ) func main() { - optEmpty := OfNullable.Empty[int]() - fmt.Println(optEmpty.IsEmpty()) + optDefault := optional.Default[int]() + fmt.Println(optDefault.IsNil()) // Output: // true } ``` - -### IsPresent - +### IsNotNil

检查当前Optional内是否存在值。

函数签名: ```go -func (o Optional[T]) IsPresent() bool +func (o Optional[T]) IsNotNil() bool ``` 示例: @@ -181,20 +175,20 @@ package main import ( "fmt" - optional "github.com/duke-git/lancet/v2/datastructure/optional" + "github.com/duke-git/lancet/v2/datastructure/optional" ) func main() { var value *int = nil - opt := optional.OfNullable(value) + opt := optional.FromNillable(value) - fmt.Println(opt.IsPresent()) + fmt.Println(opt.IsNotNil()) value = new(int) *value = 42 - opt = optional.OfNullable(value) + opt = optional.FromNillable(value) - fmt.Println(opt.IsPresent()) + fmt.Println(opt.IsNotNil()) // Output: @@ -203,15 +197,13 @@ func main() { } ``` - -### IfPresent - +### IfNotNil

如果值存在,则使用action方法执行给定的操作。

函数签名: ```go -func (o Optional[T]) IfPresent(action func(value T)) +func (o Optional[T]) IfNotNil(action func(value T)) ``` 示例: @@ -220,23 +212,23 @@ package main import ( "fmt" - optional "github.com/duke-git/lancet/v2/datastructure/optional" + "github.com/duke-git/lancet/v2/datastructure/optional" ) func main() { called := false action := func(value int) { called = true } - optEmpty := optional.Empty[int]() - optEmpty.IfPresent(action) + optDefault := optional.Default[int]() + optDefault.IfNotNil(action) fmt.Println(called) called = false // Reset for next test optWithValue := optional.Of(42) - optWithValue.IfPresent(action) + optWithValue.IfNotNil(action) - fmt.Println(optWithValue.IsPresent()) + fmt.Println(optWithValue.IsNotNil()) // Output: // false @@ -245,14 +237,13 @@ func main() { ``` -### IfPresentOrElse - +### IfNotNilOrElse

根据是否存在值执行相应的操作:有值则执行指定操作,没有值则执行默认操作。

函数签名: ```go -func (o Optional[T]) IfPresentOrElse(action func(value T), emptyAction func()) +func (o Optional[T]) IfNotNilOrElse(action func(value T), fallbackAction func()) ``` 示例: @@ -270,7 +261,7 @@ func main() { emptyAction := func() { t.Errorf("Empty action should not be called when value is present") } optWithValue := optional.Of(42) - optWithValue.IfPresentOrElse(valueAction, emptyAction) + optWithValue.IfNotNilOrElse(valueAction, emptyAction) fmt.Println(calledWithValue) @@ -278,8 +269,8 @@ func main() { valueAction = func(value int) { t.Errorf("Value action should not be called when value is not present") } emptyAction = func() { calledWithEmpty = true } - optEmpty := optional.Empty[int]() - optEmpty.IfPresentOrElse(valueAction, emptyAction) + optDefault := optional.Default[int]() + optDefault.IfNotNilOrElse(valueAction, emptyAction) fmt.Println(calledWithEmpty) @@ -289,13 +280,13 @@ func main() { } ``` -### Get +### Unwrap

如果存在,返回该值,否则引发panic。

函数签名: ```go -func (o Optional[T]) Get() T +func (o Optional[T]) Unwrap() T ``` 示例: @@ -311,7 +302,7 @@ func main() { value := 42 opt := optional.Of(value) - fmt.Println(opt.Get()) + fmt.Println(opt.Unwrap()) // Output: // 42 @@ -338,8 +329,8 @@ import ( ) func main() { - optEmpty := optional.Empty[int]() - val := optEmpty.OrElse(100) + optDefault := optional.Empty[int]() + val := optDefault.OrElse(100) fmt.Println(val) optWithValue := optional.Of(42) @@ -359,7 +350,7 @@ func main() { 函数签名: ```go -func (o Optional[T]) OrElseGet(supplier func() T) T +func (o Optional[T]) OrElseGet(action func() T) T ``` 示例: @@ -372,10 +363,10 @@ import ( ) func main() { - optEmpty := optional.Empty[int]() - supplier := func() int { return 100 } + optDefault := optional.Default[int]() + action := func() int { return 100 } - val := optEmpty.OrElseGet(supplier) + val := optDefault.OrElseGet(action) fmt.Println(val) // Output: @@ -383,14 +374,13 @@ func main() { } ``` - -### OrElseThrow +### OrElseTrigger

检查Optional值是否存在,如果存在,则直接返回该值,否则返回错误。

函数签名: ```go -func (o Optional[T]) OrElseThrow(errorSupplier func() error) (T, error) + OrElseTrigger(errorHandler func() error) (T, error) ``` 示例: @@ -403,13 +393,13 @@ import ( ) func main() { - optEmpty := optional.Empty[int]() - _, err := optEmpty.OrElseThrow(func() error { return errors.New("no value") }) + optDefault := optional.Default[int]() + _, err := optDefault.OrElseTrigger(func() error { return errors.New("no value") }) fmt.Println(err.Error()) optWithValue := optional.Of(42) - val, err := optWithValue.OrElseThrow(func() error { return errors.New("no value") }) + val, err := optWithValue.OrElseTrigger(func() error { return errors.New("no value") }) fmt.Println(val) fmt.Println(err) diff --git a/docs/en/api/packages/datastructure/optional.md b/docs/en/api/packages/datastructure/optional.md index 15ad422..6554c64 100644 --- a/docs/en/api/packages/datastructure/optional.md +++ b/docs/en/api/packages/datastructure/optional.md @@ -22,16 +22,16 @@ import ( ## Index - [Of](#Of) -- [OfNullable](#OfNullable) -- [Empty](#Empty) -- [IsPresent](#IsPresent) -- [IsEmpty](#IsEmpty) -- [IfPresent](#IfPresent) -- [IfPresentOrElse](#IfPresentOrElse) -- [Get](#Get) +- [FromNillable](#FromNillable) +- [Default](#Default) +- [IsNotNil](#IsNotNil) +- [IsNil](#IsNil) +- [IsNotNil](#IsNotNil) +- [IfNotNilOrElse](#IfPresentOrElse) +- [Umwarp](#Umwarp) - [OrElse](#OrElse) - [OrElseGet](#OrElseGet) -- [OrElseThrow](#OrElseThrow) +- [OrElseTrigger](#OrElseTrigger) @@ -68,13 +68,13 @@ func main() { } ``` -### OfNullable +### FromNillable

Returns an Optional for a given value, which may be nil.

Signature: ```go -func OfNullable[T any](value *T) Optional[T] +func FromNillable[T any](value *T) Optional[T] ``` Example: @@ -88,15 +88,15 @@ import ( func main() { var value *int = nil - opt := optional.OfNullable(value) + opt := optional.FromNillable(value) - fmt.Println(opt.IsPresent()) + fmt.Println(opt.IsNotNil()) value = new(int) *value = 42 - opt = optional.OfNullable(value) + opt = optional.FromNillable(value) - fmt.Println(opt.IsPresent()) + fmt.Println(opt.IsNotNil()) // Output: @@ -106,13 +106,13 @@ func main() { ``` -### Empty -

Returns an empty Optional instance.

+### Default +

Returns an default Optional instance.

Signature: ```go -func Empty[T any]() Optional[T] +func Default[T any]() Optional[T] ``` Example: @@ -125,8 +125,8 @@ import ( ) func main() { - optEmpty := OfNullable.Empty[int]() - fmt.Println(optEmpty.IsEmpty()) + optDefault := optional.Default[int]() + fmt.Println(optDefault.IsNil()) // Output: // true @@ -134,13 +134,13 @@ func main() { ``` -### IsEmpty -

Checks if the Optional is empty.

+### IsNil +

Checks if the Optional is nil.

Signature: ```go -func (o Optional[T]) IsEmpty() bool +func (o Optional[T]) IsNil() bool ``` Example: @@ -153,8 +153,8 @@ import ( ) func main() { - optEmpty := OfNullable.Empty[int]() - fmt.Println(optEmpty.IsEmpty()) + optDefault := optional.Default[int]() + fmt.Println(optDefault.IsNil()) // Output: // true @@ -162,13 +162,13 @@ func main() { ``` -### IsPresent -

Checks if there is a value present.

+### IsNotNil +

Checks if there is a value not nil.

Signature: ```go -func (o Optional[T]) IsPresent() bool +func (o Optional[T]) IsNotNil() bool ``` Example: @@ -182,15 +182,15 @@ import ( func main() { var value *int = nil - opt := optional.OfNullable(value) + opt := optional.FromNillable(value) - fmt.Println(opt.IsPresent()) + fmt.Println(opt.IsNotNil()) value = new(int) *value = 42 - opt = optional.OfNullable(value) + opt = optional.FromNillable(value) - fmt.Println(opt.IsPresent()) + fmt.Println(opt.IsNotNil()) // Output: @@ -200,13 +200,13 @@ func main() { ``` -### IfPresent +### IfNotNil

Performs the given action with the value if a value is present.

Signature: ```go -func (o Optional[T]) IfPresent(action func(value T)) +func (o Optional[T]) IfNotNil(action func(value T)) ``` Example: @@ -222,16 +222,16 @@ func main() { called := false action := func(value int) { called = true } - optEmpty := optional.Empty[int]() - optEmpty.IfPresent(action) + optDefault := optional.Default[int]() + optDefault.IfNotNil(action) fmt.Println(called) called = false // Reset for next test optWithValue := optional.Of(42) - optWithValue.IfPresent(action) + optWithValue.IfNotNil(action) - fmt.Println(optWithValue.IsPresent()) + fmt.Println(optWithValue.IsNotNil()) // Output: // false @@ -240,13 +240,13 @@ func main() { ``` -### IfPresentOrElse -

Performs the action with the value if present, otherwise performs the empty-based action.

+### IfNotNilOrElse +

Performs the action with the value if not nil, otherwise performs the fallback action.

Signature: ```go -func (o Optional[T]) IfPresentOrElse(action func(value T), emptyAction func()) +func (o Optional[T]) IfNotNilOrElse(action func(value T), fallbackAction func()) ``` Example: @@ -264,7 +264,7 @@ func main() { emptyAction := func() { t.Errorf("Empty action should not be called when value is present") } optWithValue := optional.Of(42) - optWithValue.IfPresentOrElse(valueAction, emptyAction) + optWithValue.IfNotNilOrElse(valueAction, emptyAction) fmt.Println(calledWithValue) @@ -272,8 +272,8 @@ func main() { valueAction = func(value int) { t.Errorf("Value action should not be called when value is not present") } emptyAction = func() { calledWithEmpty = true } - optEmpty := optional.Empty[int]() - optEmpty.IfPresentOrElse(valueAction, emptyAction) + optDefault := optional.Default[int]() + optDefault.IfNotNilOrElse(valueAction, emptyAction) fmt.Println(calledWithEmpty) @@ -283,13 +283,13 @@ func main() { } ``` -### Get -

Returns the value if present, otherwise panics.

+### Unwrap +

Returns the value if not nil, otherwise panics.

Signature: ```go -func (o Optional[T]) Get() T +func (o Optional[T]) Unwrap() T ``` Example: @@ -305,7 +305,7 @@ func main() { value := 42 opt := optional.Of(value) - fmt.Println(opt.Get()) + fmt.Println(opt.Unwrap()) // Output: // 42 @@ -314,7 +314,7 @@ func main() { ### OrElse -

Returns the value if present, otherwise returns other.

+

Returns the value if not nill, otherwise returns other.

Signature: @@ -332,8 +332,8 @@ import ( ) func main() { - optEmpty := optional.Empty[int]() - val := optEmpty.OrElse(100) + optDefault := optional.Default[int]() + val := optDefault.OrElse(100) fmt.Println(val) optWithValue := optional.Of(42) @@ -348,12 +348,12 @@ func main() { ### OrElseGet -

Returns the value if present, otherwise invokes supplier and returns the result.

+

Returns the value if not nil, otherwise invokes action and returns the result.

Signature: ```go -func (o Optional[T]) OrElseGet(supplier func() T) T +func (o Optional[T]) OrElseGet(action func() T) T ``` Example: @@ -366,10 +366,10 @@ import ( ) func main() { - optEmpty := optional.Empty[int]() - supplier := func() int { return 100 } + optDefault := optional.Default[int]() + action := func() int { return 100 } - val := optEmpty.OrElseGet(supplier) + val := optDefault.OrElseGet(action) fmt.Println(val) // Output: @@ -378,13 +378,13 @@ func main() { ``` -### OrElseThrow +### OrElseTrigger

Returns the value if present, otherwise returns an error.

Signature: ```go -func (o Optional[T]) OrElseThrow(errorSupplier func() error) (T, error) + OrElseTrigger(errorHandler func() error) (T, error) ``` Example: @@ -397,13 +397,13 @@ import ( ) func main() { - optEmpty := optional.Empty[int]() - _, err := optEmpty.OrElseThrow(func() error { return errors.New("no value") }) + optDefault := optional.Default[int]() + _, err := optDefault.OrElseTrigger(func() error { return errors.New("no value") }) fmt.Println(err.Error()) optWithValue := optional.Of(42) - val, err := optWithValue.OrElseThrow(func() error { return errors.New("no value") }) + val, err := optWithValue.OrElseTrigger(func() error { return errors.New("no value") }) fmt.Println(val) fmt.Println(err)