首次提交:初始化项目代码
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// StringSlice 支持重复传参的字符串切片类型
|
||||
type StringSlice []string
|
||||
|
||||
// Set 实现参数追加逻辑,覆盖原生覆盖问题
|
||||
func (s *StringSlice) Set(value string) error {
|
||||
*s = append(*s, value)
|
||||
return nil
|
||||
}
|
||||
|
||||
// String 实现字符串展示与零值返回
|
||||
func (s *StringSlice) String() string {
|
||||
if len(*s) == 0 {
|
||||
return "[]"
|
||||
}
|
||||
return strings.Join(*s, ",")
|
||||
}
|
||||
|
||||
// Get 实现Getter接口,返回原始切片类型
|
||||
func (s *StringSlice) Get() any {
|
||||
return []string(*s)
|
||||
}
|
||||
|
||||
func main() {
|
||||
var files StringSlice
|
||||
var tags StringSlice
|
||||
|
||||
flag.Var(&files, "file", "指定配置文件,可重复传参")
|
||||
flag.Var(&tags, "tag", "自定义业务标签,可重复传参")
|
||||
|
||||
flag.Parse()
|
||||
|
||||
fmt.Printf("文件列表:%v (原始类型:%T)\n", files.Get(), files.Get())
|
||||
fmt.Printf("标签列表:%v (原始类型:%T)\n", tags.Get(), tags.Get())
|
||||
}
|
||||
Reference in New Issue
Block a user