flags

package module
v0.0.7 Latest Latest
Warning

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

Go to latest
Published: May 31, 2024 License: MIT Imports: 11 Imported by: 0

README

flags

bind struct from flag

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Default = func() *FlagSet { return pflag.CommandLine }

Functions

func Extend

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

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

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

参数:

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

func IsExtend added in v0.0.5

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

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

参数:

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

返回值:

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

func Parse

func Parse()

Parse 函数解析命令行参数。

  • 它首先尝试使用默认配置解析命令行参数(从os.Args[1:]开始)。
  • 如果解析过程中出现错误,将错误信息打印到标准错误输出,并退出程序,退出码为1。

func ParseFlag added in v0.0.5

func ParseFlag(flag *FlagSet, args []string) (err error)

ParseFlag 解析命令行参数。

参数:

  • flag *FlagSet: 用于解析命令行参数的 FlagSet 实例。
  • args []string: 命令行参数数组。

func ParseStruct

func ParseStruct(structPtr any)

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

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

参数:

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

func ParseStructE added in v0.0.5

func ParseStructE(flag *FlagSet, structPtr any, args ...string) (err error)

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

  • 它首先尝试将参数绑定到指定的结构体指针上,然后解析额外的命令行参数。

参数:

  • flag - 指向 FlagSet 的指针,用于处理命令行参数。
  • structPtr - 任意类型的指针,预期为一个结构体指针,将从中解析参数。
  • args - 可变数量的字符串参数,表示额外的命令行参数需要被解析。

func StructBind

func StructBind(structPtr any, flags ...*FlagSet)

StructBind 将命令行参数绑定到指定的结构体。该函数首先尝试进行绑定操作,如果操作失败,则会打印错误信息并退出程序。

参数:

  • structPtr - 指向要绑定数据的结构体的指针。
  • flags - 可选的FlagSet数组,用于定义额外的标志处理规则。

func StructBindE added in v0.0.5

func StructBindE(structPtr any, flags ...*FlagSet) (err error)

StructBindE 通过反射将命令行参数绑定到结构体指针上。

参数:

  • structPtr: 任意类型的结构体指针,将以此为模板解析命令行参数。
  • flags: 可选的FlagSet数组,用于定义命令行参数的解析规则。如果不提供,则使用默认规则。

func StructPrint

func StructPrint(structPtr any, print func(s string))

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

参数:

  • structPtr: 任意类型的结构体指针,函数将通过反射获取其字段信息进行打印
  • print: 一个函数,用于输出字符串,类似于fmt.Println,用于打印字段信息

func StructToArgs

func StructToArgs(structPtr any) (args []string)

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

参数:

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

返回值 :

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

func Version

func Version(updateVer ...string) string

Version函数用于设置或获取版本号。

如果提供了参数,则尝试更新版本号为第一个非空字符串。

参数:

  • updateVer ... - 可变数量的字符串参数,用于更新版本号。第一个非空字符串将被用作新的版本号。

返回值:

  • string - 当前的版本号。

Types

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) (err error)

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

func GetExtend

func GetExtend(t reflect.Type) ExtendType

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

参数:

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

返回值:

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

type FlagSet

type FlagSet = pflag.FlagSet

Jump to

Keyboard shortcuts

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