在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
package kingpin_parser import ( "strconv" "gopkg.in/alecthomas/kingpin.v2" "fmt" )
type size uint64 //单位换算 func (s *size) Set(value string) error { num, err := strconv.ParseUint(value[:len(value) - 1], 10, 64) if err != nil { return fmt.Errorf("can't parse \"%s\"", value) } switch value[len(value) - 1] { case 'B', 'b': case 'K', 'k': num = num << 10 case 'M', 'm': num = num << 20 case 'G', 'g': num = num << 30 default: return fmt.Errorf("can't parse \"%s\"", value) } *s = size(num) return nil }
//数据支持标准输出 func (s *size) String() string { return strconv.FormatUint(uint64(*s), 10) }
//字节大小设置 func Size(s kingpin.Settings) (target *uint64) { target = new(uint64) s.SetValue((*size)(target)) return }
|
请发表评论