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
}
kingpin_parser.go的更多相关文章
随机推荐
- Redis的集群配置
如果我们redis的压力很大,如果我们的并发高到我们读数据和写数据都有了很大压力. 那么我们可能就需要把redis分开部署,并且配置为一个『主从』的状态. 在服务器上构筑Redis的集群配置: 1.切 ...
- ORM框架--GreenDao 3.0基本使用指南
0. ORM框架--GreenDao 3.0基本使用指南 1. Gradle 的配置 这里可以参照官方的文档进行最新的配置(本示例的版本等你看到可能就不是最新的了),但是值得注意的一点是,GreenD ...
- 爬虫Scrapy框架运用----房天下二手房数据采集
在许多电商和互联网金融的公司为了更好地服务用户,他们需要爬虫工程师对用户的行为数据进行搜集.分析和整合,为人们的行为选择提供更多的参考依据,去服务于人们的行为方式,甚至影响人们的生活方式.我们的scr ...
- [更新]单线程的JS引擎与 Event Loop
先来思考一个问题,JS 是单线程的还是多线程的?如果是单线程,为什么JavaScript能让AJAX异步发送和回调请求,还有setTimeout也看起来像是多线程的?还有non-blocking IO ...
- iOS9自动布局神器StackView
http://www.jianshu.com/p/767f72b7d754 这篇文章紧跟上边autolayout的一些小技巧,如果你没有看过,不防先看下<你真的会用autolayout吗?> ...
- Django 1.11 release note简明解读
1.首先1.11这个版本是一个LTS版本 2.第一个支持python3.6的版本,最后一个支持python2.*的版本 3.Deprecating warnings 默认不再显示,同时建议第三方包开始 ...
- FPGA图像处理之行缓存(linebuffer)的设计一
FPGA图像处理之行缓存(linebuffer)的设计一 作者:OpenS_Lee 1 背景知识 在FPGA数字图像处理中,行缓存的使用非常频繁,例如我们需要图像矩阵操作的时候就需要进行缓存,例如图像 ...
- java之Spring(AOP)前奏-动态代理设计模式(上)
我们常常会遇到这样的事,项目经理让你为一个功能类再加一个功能A,然后你加班为这个类加上了功能A: 过了两天又来了新需求,再在A功能后面加上一个新功能B,你加班写好了这个功能B,加在了A后面:又过 了几 ...
- netcore入门-基础
.NETCORE1.0出来了,咦不错,什么开源,跨平台的,观望下等2.0:我擦2.0出来了可以学习了,截止到目前2.1都快出来了,是时候学习一下了. 先建一个webapi项目,从简单的demo开始 l ...
- java8完全解读二
继续着上次的java完全解读一 继续着上次的java完全解读一1.强大的Stream API1.1什么是Stream1.2 Stream操作的三大步骤1.2.1 创建Stream1.2.2 Strea ...