go语言学习笔记1--flag代码包

2023-11-03

flag代码包用于接收和解析命令参数。
我们以hello world代码作为示例。

package main
import "fmt"
func main() {
	fmt.Println("hello world!")
}

现在,我们想要根据输入定制hello的对象。比如,hello, xiaoming。
flag.StringVar的第一个参数是接收输入值的地址,第二个参数是输入参数的名称,第三个参数是在没有输入参数的时候的默认值,第四个参数是对参数的解释。在使用之前通过flag.Parse()对参数进行解析。

package main
import (
	"flag"
	"fmt"
)
var name string
func init(){
	flag.StringVar(&name, "name", "everyone", "The greeting Object!")
}
func main() {
	flag.Parse()
	fmt.Printf("hello, %s!\n", name)	
}

执行命令

go run demo.go -name="xiaoming"

输出为

hello, xiaoming

进一步,我们可以自定义参数使用说明。
第一种方式是重新定义flag.Usage函数。
第二种方式是重新给flag.CommandLine赋值。
第三种方式是自己创建一个私有的参数容器。

import (
	"flag"
	"fmt"
	"os"
)
var name3 string
//方式三 不使用全局的flag.CommandLine,自己创建一个私有的命令参数容器
var cmdLine = flag.NewFlagSet("question", flag.ExitOnError)
func init(){
	//方式二给flag.Commandline重新赋值
	//flag.CommandLine = flag.NewFlagSet("", flag.ExitOnError)
	//flag.CommandLine.Usage = func(){
	//	fmt.Fprintf(os.Stderr, "usage of %s:\n", "question")
	//	flag.PrintDefaults()
	//}
	
	//方式三 不使用全局的flag.CommandLine,自己创建一个私有的命令参数容器
	cmdLine.StringVar(&name3, "name", "everyone", "the greeting object")
}
func main() {
	//方式一 重新定义Usage函数
	//flag.Usage = func() {
	//	fmt.Fprintf(os.Stderr, "Usage of %s:\n", "question")
	//	flag.PrintDefaults()
	//}

	//方式三 不使用全局的flag.CommandLine,自己创建一个私有的命令参数容器
	cmdLine.Parse(os.Args[1:])
	fmt.Printf("hello, %s!\n", name3)	
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

go语言学习笔记1--flag代码包 的相关文章

  • go-redis 框架基本使用

    文章目录 redis使用场景 下载框架和连接redis 1 安装go redis 2 连接redis 字符串操作 有序集合操作 流水线 事务 1 普通事务 2 Watch redis使用场景 缓存系统 减轻主数据库 MySQL 的压力 计数
  • 在Windows上搭建Go开发环境

    Go语言是由谷歌开发的一个高性能 跨平台的编程语言 安装Go 首先先来安装一下Go语言的SDK 目前Go语言的最新版本为Go 1 8 3 Go下载页面列出了各种操作系统的安装包 如果选择Windows MSI安装包的话 会将Go安装到C G
  • Windows 上Go env 命令设置Go环境变量

    在旧版本中使用下面的命令设置 Enable the go modules feature env GO111MODULE on Set the GOPROXY environment variable env GOPROXY https g
  • golang 单元测试、性能测试、性能监控技术

    golang 单元测试 性能测试 性能监控技术 go语言提供了强大的测试工具 下面举例简单介绍一下 go test 单元测试 go test bench 性能测试 go tool pprof 性能监控 go test 单元测试 例如对包he
  • 玩好go的切片

    go的slice 入门就会遇到 但这个东西大多数人都是停留在简单的使用 一些干了好几年的老程序员都说不明白里面的道道 这里面坑不少 恰巧今天有空 好好整理下 永不踩坑 1 为什么要用切片 其他语言大多用的都是数组 在go中 数组的长度是不可
  • 【go基础】变量声明

    1 第一个go语言程序 package main 声明所属的包 import fmt func main fmt Println hello world go run hello go 执行当前文件 输出 hello world 也可以构建
  • go语言使用thrift协议实现客户端和服务端报not enough arguments in call to oprot.WriteMessageBegin错误解决方案

    正常步骤 安装golang的Thrift包 go get git apache org thrift git lib go thrift 安装 Thrift 的 IDL 编译工具 http www apache org dyn closer
  • Go语言中的rune数据类型

    写在前面 最近开始学习Go语言 因为自己是从Java逐步转Go原因 在感慨Go语言简便的同时 也因为其封装的数据类型和包较多 所以还得慢慢学习 今天来谈谈Go语言中的rune数据类型 名词解释 Go语言中的整数类型也有有符号数和无符号数之别
  • 42-Golang中的单元测试

    Golang中的单元测试 需求 传统方法 基本介绍 单元测试快速入门总结 综合案例 需求 在工作中 我们会遇到这样的情况 就是去确认一个函数 或者一个模块的结果是否正确 传统方法 在main函数中 调用addUpper函数 看看实际输出的记
  • 【笔记】Go语言 Http-client 解析json后并插入数据库

    一 Http client 获取json 参考 Go标准库http Client的连接行为控制详解 原创手记 慕课网 因为 代码 resp err http Get http example com resp err http Post h
  • GoLang学习资源清单

    地鼠文档go语言文档网站通过收集整理go语言相关的学习文档 为大家提供一个学习平台https www topgoer cn 前景 Go语言中文文档https www topgoer com 文档 Gin Web FrameworkGin W
  • Go语言的跨文件调包

    一 前言 文件的结构如下 go mod main main go util util go 文件在调用其它包的时候 需要在代码中引用其他的函数 包的命名一般都以小写为主 文件中函数的以首字符为大写的函数为共有函数 小写的为私有函数 只能是在
  • Go timer 是如何被调度的?

    hi 大家好 我是 haohongfan 本篇文章剖析下 Go 定时器的相关内容 定时器不管是业务开发 还是基础架构开发 都是绕不过去的存在 由此可见定时器的重要程度 我们不管用 NewTimer timer After 还是 timer
  • go语言连接mysql数据库,并验证连通性

    go语言连接mysql数据库 并验证连通性 package main import database sql sql Open加载包 github com go sql driver mysql 没用到包里的内容但是需要加载一下这个包 lo
  • Go开发工具

    http studygolang com articles 1678 1 4 Go开发工具 本节我将介绍几个开发工具 它们都具有自动化提示 自动化fmt功能 因为它们都是跨平台的 所以安装步骤之类的都是通用的 LiteIDE LiteIDE
  • Go语言实现区块链与加密货币-Part1(基本原型、工作量证明、持久化)

    区块链 Blockchain 是21世纪最具革命性的技术之一 它仍然处于不断成长的阶段 而且还有很多潜力尚未显现 作为比特币的底层技术 它本质上只是一个分布式数据库 不过使它独一无二的是 区块链是一个公开的而不是私人的数据库 每个使用它的人
  • 使用go语言整合gin,驱动bartender打印标签程序

    可以用来当中间件 项目地址 github GitHub wjdsg0327 printer barTender 使用go语言整合gin驱动bartender打印标签 gitee printer barTender 使用go整合gin驱动ba
  • 【Go语言核心手册11】context.Context

    往期精选 欢迎转发 如何看待程序员35岁职业危机 Java全套学习资料 14W字 耗时半年整理 我肝了三个月 为你写出了GO核心手册 消息队列 从选型到原理 一文带你全部掌握 肝了一个月的ETCD 从Raft原理到实践 更多 11 1 内容
  • go语言exec包调用shell命令

    工程中需要用到ffmpeg 想直接用exec包调用shell命令 本来以为很简单 结果折腾了一下午 最后查到了解决方案 假如之前执行报错的语句为 cmd exec Command echo helloworld out err cmd Ou
  • Golang并发安全和锁

    目录 场景 互斥锁 读写互斥锁 互斥锁 读写锁 Sync Once sync Map 定时器 场景 有时候在Go代码中可能会存在多个goroutine同时操作一个资源 临界区 这种情况会发生竞态问题 数据竞态 类比现实生活中的例子有十字路口

随机推荐

  • Qt for Android:自定义安卓Application和Activity

    Demo 链接 https github com gongjianbo HelloQtAndroid git 1 前言 安卓的 Application 类相当于 Qt QApplication 维护应用程序全局状态 Application文
  • 马原刷题工具

    选择题库文件word后 就能开始刷题了 导入题库时会自动生成一个docx文件和json文件 想要重新导入就删除json文件 题库下载 点我下载 要安装的库 pywin32 python docx author Bre Athy contac
  • 代码随想录算法训练营第四十一天| 343. 整数拆分 96.不同的二叉搜索树

    今天两题都挺有难度 建议大家思考一下没思路 直接看题解 第一次做 硬想很难想出来 343 整数拆分 代码随想录 视频讲解 动态规划 本题关键在于理解递推公式 LeetCode 343 整数拆分 哔哩哔哩 bilibili public in
  • 详解Cocos2d-X中宏CC_DLL(转)

    在cocos2d x的源码中 经常可以看到宏CC DLL的使用 比如在类CCScene的定义中 class CC DLL CCScene public CCNode public CCScene virtual CCScene bool i
  • cass等距离等分线段的命令键_教你用CAD将线段等分,弧线也可定距等分!

    定距等分的命令是 MEASURE 快捷键是 me 定数等分的命令是 DIVIDE 快捷键是 div 注意了 命令不分大小写 如下图 是一根长为300mm 的线段 弧线也可以哦 选择 格式 点样式 如下图 先选择好点样式的图标 记得有个图标大
  • 操作系统多线程实现_操作系统中的线程实现

    操作系统多线程实现 Each process has an address space There is one thread of control in every traditional OS Sometimes it is viabl
  • Centos7 使用 chronyd 进行时钟同步

    背景 最近要做阿里云迁移 IDC 机房 整理下 Linux 运维基线 简单记录 以备后用 安装 默认已经安装 yum install y chrony 配置文件 cat etc chrony conf Use public servers
  • 如何看待职场的越级汇报问题

    越级汇报这个词 大家或许听过 在一些公司 甚至明令禁止越级汇报 这个词很容易跟打小报告等等牵扯在一起 越级汇报单纯从利弊来说 可能弊大于利 下属隔着自己直属领导向上越级反馈问题 说明对现有领导的不信任 这里面会体现出很多问题 作为管理需要花
  • 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程

    原文链接 http www jianshu com p 3667157d63bb 1 故障现象 客服同事反馈平台系统运行缓慢 网页卡顿严重 多次重启系统后问题依然存在 使用top命令查看服务器情况 发现CPU占用率过高 2 CPU占用过高问
  • 小程序压缩图片尺寸

    有api是压缩质量的 wx compressImage src originPath 图片路径 quality 90 压缩质量 success function res res tempFilePath 结果路径 压缩尺寸没有api 需要自
  • mysql的JDBC架包下载及简单测试连接

    一 下载JDBC连接所需要的jar包 选择Communityhttps www mysql com downloads 二 导入jar包 1 解压下载的安装包 2 eclispe项目导入jar包 方式一 Build Path gt Conf
  • 在Word中调整图片大小会自动改变怎么办?

    在Word中调整图片大小会自动改变怎么办 在Word中有多个图片 需要调整到大小一致 可是拉动 或者设置图片大小后 图片会自动改变 始终无法将所有图片调到大小一致 别担心 鼠标右键点击图片 选择大小和位置 取消勾选 锁定纵横比 相对原始图片
  • 最新版mysql-8.0.32-winx64安装及配置

    目录 一 下载 二 配置初始化文件my ini 请注意 这里的配置是什么含义呢 三 安装mysql 四 配置环境变量 编辑 五 cmd命令提示符 常用指令 总结 一 下载 Mysql官网下载https www mysql com cn do
  • JavaScript的闭包机制

    JavaScript的闭包是指函数可以访问其外部作用域中的变量 即使函数在外部作用域之外被调用 这是因为函数在创建时会创建一个闭包 它包含了函数的代码和函数创建时所处的作用域 当函数被调用时 它可以访问闭包中的变量 即使这些变量在函数被调用
  • 阈值分割

    C 阈值分割 1 阈值分割 5种类型的阈值分割如下 第一种 阈值二值化 蓝色线表示阈值 原理 像素值大于阈值时 为最大值 小于阈值则为0 第二种 阈值反二值化 原理 像素值大于阈值时 为0 否则为设定的最大值 第三种 截断 原理 像素值大于
  • SpringCloud --- Ribbon负载均衡

    一 负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件 来实现负载均衡功能的 那么我们发出的请求明明是http userservice user 1 怎么变成了http localhost 8081的呢 二 源码
  • 在Windows上部署ubuntu(保姆级)

    在搜索栏中搜索开发者模式 其次开启开发人员模式 然后在控制面板 gt 程序 gt 程序和功能 gt 找到启动或关闭Window功能 gt 找到适用于Linux的Windows子系统 上面的设置打开之后 打开win10的微软应用商店 再搜索U
  • 2-3树与红黑树

    第一次接触红黑树是在关于hashMap 上来就扔五个特性 说满足这五个特点的二分搜索树就是红黑树 1 每个节点或者是黑色 或者是红色 2 根节点是黑色 3 每个叶子节点 NIL 是黑色 注意 这里叶子节点 是指为空 NIL或NULL 的叶子
  • 猜数字(while 循环应用)

    题目要求 系统随机生成一个1 100的随机数字 玩家进行猜测 如果猜错 提示玩家数字过大或过小 猜对则恭喜玩家并退出游戏 题目分析 1 生成一个1 100 的随机数 2 玩家输入数字 3 对比数字 猜错提示过大 过小并循环至第2步 猜对退出
  • go语言学习笔记1--flag代码包

    flag代码包用于接收和解析命令参数 我们以hello world代码作为示例 package main import fmt func main fmt Println hello world 现在 我们想要根据输入定制hello的对象