flags

package
v0.0.0-...-2040d2c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Default = New(filepath.Base(os.Args[0]))

Functions

func Args

func Args(structPtr any) (args []string, err error)

Args 函数将结构体指针转换为命令行参数字符串切片。

参数:

  • structPtr 任意类型的结构体指针,函数将通过反射解析其字段和值。

返回值 :

  • args 是包含结构体字段及其值的字符串切片,格式为 "--字段名 值"。

func Extend

func Extend[T any](parse func(src T, s string) (T, error), format func(T) string, typeString string)

Extend 为指定类型 T 注册自定义的解析和格式化函数。

parse 函数用于将字符串解析为 T 类型的值,format 函数用于将 T 类型的值格式化为字符串。

参数:

  • parse: 一个函数,其输入为字符串,输出为 T 类型的值和可能的错误。用于将配置文件中的字符串值解析为实际的类型 T。
  • format: 一个函数,其输入为 T 类型的值,输出为字符串。用于将类型 T 的值格式化为字符串,以便写入配置文件中。

func IsExtend

func IsExtend(t reflect.Type) (yes bool)

IsExtend 函数用于判断指定类型是否为扩展类型。

参数:

  • t reflect.Type - 需要判断类型的 reflect.Type 实例。

返回值:

  • bool - 如果类型是扩展类型,则返回 true;否则返回 false。

func IsNil

func IsNil(v reflect.Value) bool

IsNil reports whether its argument v is nil.

The argument must be a chan, func, interface, map, pointer or slice value, if it is not, return it is invalid.

func IsZero

func IsZero(v reflect.Value) bool

IsZero reports whether v is the zero value for its type.

It return true if the argument is invalid.

func MustArgs

func MustArgs(structPtr any) []string

MustArgs 函数将结构体指针转换为命令行参数字符串切片。

参数:

  • structPtr 任意类型的结构体指针,函数将通过反射解析其字段和值。

返回值 :

  • args 是包含结构体字段及其值的字符串切片,格式为 "--字段名 值"。

func Parse

func Parse()

func Ref

func Ref(src any) reflect.Value

func SetVersion

func SetVersion(ver string)

func Struct

func Struct(obj any)

func Var

func Var(obj any, name, shorthand, usage string)

func Walk

func Walk(structPtr any, prefix *childPrefix, walFn func(field *FlagField, max int)) error

Walk 打印结构体指针的字段信息

Types

type BindOption

type BindOption struct {
	Flag string
	Env  string
}

type ExtendType

type ExtendType interface {
	// Get 用于根据传入的reflect.Value获取对应的字符串。
	//
	// 参数:
	//  - v - 代表要获取数据的reflect.Value。
	Get(v reflect.Value) (s string)

	// Set 用于通过反射设置值。
	//
	// 参数:
	//   - v: 要设置值的反射值。
	//   - s: 要设置的字符串值。
	Set(v reflect.Value, s string, reset bool) (err error)

	// Type 值的类型字符串。
	Type() string
}

func GetExtend

func GetExtend(t reflect.Type) ExtendType

GetExtend 通过反射类型获取对应的扩展类型

参数:

  • t: 要获取扩展类型的反射类型

返回值:

  • ExtendType: 与给定反射类型对应的扩展类型

type FlagField

type FlagField struct {
	Field           reflect.StructField
	Name            string
	Shorthand       string
	Usage           string
	Value           *Value
	Env             []string
	Deprecated      string
	ShortDeprecated string
	// contains filtered or unexported fields
}

type FlagSet

type FlagSet struct {
	Version           string
	Prefix            childPrefix
	HandleVersionFlag func(version string)
	// contains filtered or unexported fields
}

func New

func New(name string) *FlagSet

func (*FlagSet) Init

func (f *FlagSet) Init(name string)

func (*FlagSet) Parse

func (f *FlagSet) Parse(args []string) (err error)

ParseFlag 解析命令行参数。

参数:

  • args []string: 命令行参数数组。

func (*FlagSet) SetVersion

func (f *FlagSet) SetVersion(ver string)

func (*FlagSet) Struct

func (f *FlagSet) Struct(structPtr any, prefix *childPrefix)

Struct 是一个解析结构体的函数。

它接受一个指向结构体的指针作为参数,尝试使用默认配置解析传入的结构体。
如果解析失败,将错误信息打印到标准错误输出,并退出程序。

参数:

  • structPtr any - 指向要解析的结构体的指针。

func (*FlagSet) Var

func (f *FlagSet) Var(obj any, name, shorthand, usage string)

type PathList

type PathList []string

func (PathList) Abs

func (in PathList) Abs() (out PathList)

func (PathList) Compact

func (in PathList) Compact() (out PathList)

func (PathList) IfNil

func (in PathList) IfNil(s ...string) PathList

func (PathList) Len

func (in PathList) Len() int

func (PathList) String

func (in PathList) String() string

type Value

type Value struct {
	Ref reflect.Value //引用对象
	// contains filtered or unexported fields
}

func (*Value) DirectType

func (v *Value) DirectType() reflect.Type

func (*Value) IsKind

func (v *Value) IsKind(kind reflect.Kind) bool

func (*Value) Set

func (v *Value) Set(s string) (err error)

func (*Value) SetString

func (v *Value) SetString(args []string, asDefault bool) (err error)

func (*Value) String

func (v *Value) String() string

func (*Value) Type

func (v *Value) Type() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL