flag 命令行参数解析,大家可能不太清楚是什么命令行参数解析,不要紧,我们来看看:

他就是干这个活的

 func FlagTest1(){
var username string
var userage int flag.StringVar(&username,"username","default","please input username")
flag.IntVar(&userage,"age",0,"please input userage")
flag.Parse() fmt.Printf("username :%s -- userage : %d",username,userage)
}

很多情况下我们想让flag直接绑定变量,那么可以使用下面这种方式。

 func FlagTest2(){
name := flag.String("name","default","please input name")
age := flag.Int("age",0,"please input age")
flag.Parse()
fmt.Println(fmt.Println(*name,*age))
fmt.Printf("name :%s -- age : %d",*name,*age)
}

下面来看一个综合案例

package main

import (
"bufio"
"flag"
"fmt"
"io"
"os"
"strings"
) func fileExist(filename string)bool{
_,err := os.Open(filename)
return err == nil || os.IsExist(err)
} func copyFile(src,des string)(w int64,err error){
srcFile,err := os.Open(src)
if err != nil{
fmt.Println(err.Error())
return
}
defer srcFile.Close() desFile ,err := os.Create(des)
if err != nil{
fmt.Println(err.Error())
return
}
desFile.Close()
return io.Copy(desFile,srcFile)
} //noinspection ALL
func copyFileAct(src,des string ,sp ,force bool){
if force{
if fileExist(des){
fmt.Printf("%s exists override? y/n\n",des)
reader := bufio.NewReader(os.Stdin)
data,_ ,_:= reader.ReadLine()
if strings.TrimSpace(string(data)) != "y" {
return
}
}
}
copyFile(src,des) if sp {
fmt.Println("a---->b")
}
} func main(){
var sp,force bool flag.BoolVar(&force,"f",false,"是否强制执行.")
flag.BoolVar(&sp,"v",false,"是否显示执行过程.") flag.Parse() if flag.NArg() < 2 {
flag.Usage()
return
} copyFileAct(flag.Arg(0),flag.Arg(1),sp,force) }

有问题可以在下面评论,技术问题可以私聊我

Go语言Flag的简单示例的更多相关文章

  1. Go语言的基准测试简单示例

    测试了三个从数字转换为字符的性能, 高手的感觉.... package listing28_test import ( "fmt" "testing" &quo ...

  2. thrift简单示例 (go语言)

    这个thrift的简单示例来自于官网 (http://thrift.apache.org/tutorial/go), 因为官方提供的例子简单易懂, 所以没有必要额外考虑新的例子. 关于安装的教程, 可 ...

  3. R语言:用简单的文本处理方法优化我们的读书体验

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html 前言 延续之前的用R语言读琅琊榜小说,继续讲一下利用R语言做一些简单的文本处理.分词的事情.其实 ...

  4. ACEXML解析XML文件——简单示例程序

    掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...

  5. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  6. [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...

  7. 用C语言编写一个简单的词法分析程序

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法 ...

  8. Python Thrift 简单示例

    本文基于Thrift-0.10,使用Python实现服务器端,使用Java实现客户端,演示了Thrift RPC调用示例.Java客户端提供两个字符串参数,Python服务器端计算这两个字符串的相似度 ...

  9. SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论 SignalR 简单示例 通过三个DEMO学会SignalR的三种实现方式 SignalR推送框架两个项目永久连接通讯使用 SignalR 集线器简单实例2 用SignalR创建实时永久长连接异步网络应用程序

    SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论   异常汇总:http://www ...

随机推荐

  1. Java操作XML牛逼利器JDOM&DOM4J

    JDOM  JDOM 是一种使用 XML(标准通用标记语言下的一个子集) 的独特 Java 工具包,用于快速开发 XML 应用 程序. JDOM 官方网站:http://www.jdom.org/ 利 ...

  2. Wooden Sticks---hdu1051(最长上升子序列)

    http://acm.hdu.edu.cn/showproblem.php?pid=1051 Problem Description There is a pile of n wooden stick ...

  3. [React] Extend styles with styled-components in React

    In this lesson, you will learn how to extend styles from one styled-component to another in a React ...

  4. 微信小程序 常见问题 小结

    1.微信小程序 尺寸单位 rpx单位是微信小程序中css的尺寸单位,rpx可以根据屏幕宽度进行自适应.规定屏幕宽为750rpx.如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则 ...

  5. LoadRunner 事务响应时间的组成

    事务时间 一个事务的时间是指持续时间,事务会完全记录下从事务开始到事务结束之间的时间差,那么事务的时间能真实地反映业务操作的时间吗?不能,就好像人用手按秒表来记录短跑时间一样,得出的时间并不是完全准确 ...

  6. 【教程】怎样申请Chrome应用商店(Web Store)开发人员

    首先你须要一张信用卡,假设你没有的话.能够借用父母或他人的(多见于学生党) 假设你有信用卡.你还得看看信用卡正面是否有注明"VISA"."MasterCard" ...

  7. java 报错非法的前向引用

    今天在看<thinking in java>的时候,第四章提到了非法的前向引用,于是自己试了一下,书中的例子倒是一下就明白了,但是自己写的一个却怎么也不明白,于是上网问了一位前辈,终于明白 ...

  8. Real-Time Compressive Tracking 论文笔记

    总体思想 1 利用符合压缩感知RIP条件的随机感知矩阵对多尺度图像进行降维 2 然后对降维的特征採用简单的朴素贝叶斯进行分类 算法主要流程 1 在t帧的时候,我们採样得到若干张目标(正样本)和背景(负 ...

  9. 连接sql2008时报错

    最近把公司的项目搭建到本地(周末回家要加班),可是连接后,发现程序后台出错,错误信息:不支持此服务器版本.目标服务器必须是 SQL Server 2000 或更高版本. 本地是SqlServer200 ...

  10. Ios 项目从头开发 MVVM模式(三)

    1.话说,本来想做个聚合查询功能.可是我的重点想研究xmpp聊天功能.所以使用mvvm模式做了全然模式51job主界面的页面. 2.首先给大家看我执行起来的界面. 3.界面非常easy,做这个界面主要 ...