代码拉取完成,页面将自动刷新
package option
type Option interface {
String() string
Type() int
Value() interface{}
}
type Opt[T any] struct {
v T
d string
t int
}
func WithOpt[T any](v T, desc string, t int) Option {
return &Opt[T]{v: v, d: desc, t: t}
}
func (o Opt[T]) String() string {
return o.d
}
func (o Opt[T]) Type() int { return o.t }
func (o Opt[T]) Value() interface{} { return o.v }
func Filter(filter func(opt Option) bool, opts ...Option) {
for i := range opts {
if filter(opts[i]) {
return
}
}
}
func Exist(ty int, opts ...Option) (Option, bool) {
for i := range opts {
if opts[i].Type() == ty {
return opts[i], true
}
}
return nil, false
}
func Select[T any](t int, defValue T, opts ...Option) T {
if r, ok := Exist(t, opts...); ok {
return r.Value().(T)
}
return defValue
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。