zoukankan      html  css  js  c++  java
  • kingpin_parser.go

    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
    }

  • 相关阅读:
    红黑树-插入篇
    并查集
    Rabin-Karp【转载】
    KMP
    怎样花两月时间去应聘互联网公司 [转载]
    c++ 智能指针【转载】
    java序列化
    Web页面导出Excel表格
    基于jquery-UI的日期选择器
    Doc命令
  • 原文地址:https://www.cnblogs.com/zhangboyu/p/7461576.html
Copyright © 2011-2022 走看看