欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Go语言Flag的简单示例

发布时间:2025/5/22 编程问答 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Go语言Flag的简单示例 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

他就是干这个活的 

func FlagTest1(){var username stringvar userage intflag.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 mainimport ("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 boolflag.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)}

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

转载于:https://www.cnblogs.com/c1024/p/11011992.html

总结

以上是生活随笔为你收集整理的Go语言Flag的简单示例的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。