-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
如下代码:
enum Option<T> {
Some(T) | None
}如果用这个库,目前似乎是写不出来的。
import "github.com/lvyahui8/goenum"
type Option struct {
goenum.Enum
}
var (
Some = goenum.NewEnum[Option]("Some", 0) // 能否让这里的 0 作为可以携带的任意(any)值?
None = goenum.NewEnum[Option]("None")
)
func() {
some := *goenum.Value[Option]("Some")
fmt.Println(some) // output: 0
goenum.Set[Option]("Some", "a")
foo := *goenum.Value[Option]("Some")
fmt.Println(foo) // output: a
}
另外,目前的 ValueOf、ValueOfIgnoreCase、Values,返回的是枚举变体(enum variant)
所以,名称应更改为:VariantOf、VariantOfIgnoreCase、Variants
Value 在 tagged union type 中,指的是 Variant 所携带的值Metadata
Metadata
Assignees
Labels
No labels