当前位置: 首页 > news >正文

网站前置审批流程参考消息今天新闻

网站前置审批流程,参考消息今天新闻,福州做企业网站,网站开通支付宝收款Cobra 是 golang 最流行的命令行库,文档见 一、脚手架 mkdir pt && cd pt && go mod init cobra-cli init # 在项目下运行即可生成脚手架# tree . ├── LICENSE ├── cmd # 生成了cmd目录 │ └── root.go # 生成了root.go, 其中定义了ro…


Cobra 是 golang 最流行的命令行库,文档见

一、脚手架

mkdir pt && cd pt && go mod init
cobra-cli init # 在项目下运行即可生成脚手架# tree
.
├── LICENSE
├── cmd # 生成了cmd目录
│   └── root.go # 生成了root.go, 其中定义了rootCmt变量
├── go.mod
├── go.sum
└── main.go# go run main.go
Usage:pt [command]Available Commands:completion  Generate the autocompletion script for the specified shellhelp        Help about any commandshow        Display current timeFlags:-h, --help     help for pt-t, --toggle   Help message for toggle

二、子命令

# cobra-cli add show # 添加名为show的子命令, 则会自动生成cmd/show.go代码# go run main.go show # 执行名为show的子命令
2023-08-28 22:00:58.263991 +0800 CST m=+0.000923251# go run main.go show -h # 获取名为show的子命令的帮助信息
will display like 2023-08-28 22:00:58.263991 +0800 CST m=+0.000923251Usage:pt show [flags]Flags:-h, --help   help for show

三、flag 参数

3.1 定义

// 添加参数
func init() {rootCmd.AddCommand(proto2jsonCmd)proto2jsonCmd.Flags().StringP("content", "c", "", "byte content of a.proto")proto2jsonCmd.Flags().StringP("filepath", "f", "", "filepath of proto file")
}// 输出如下:
with a.proto protocolUsage:pt p2j [flags]Flags:-c, --content string    byte content of a.proto-f, --filepath string   filepath of proto file-h, --help              help for p2j

3.2 使用

如果需要使用 全局flag 或者 局部flag,需要在合适的作用域内定义变量存储 flag 值,以便 flag 可在特定作用域内生效。

3.2.1 使用全局flag

让一个 flag 对所有命令生效,需要在 root.go 文件中创建一个变量存储 flag 值。

如需要定义一个全局flag name:

// 在root.go 文件中添加一个变量name
var name string// 在init函数中添加全局flag,将flag值存储到变量name中
rootCmd.PersistentFlags().StringVar(&name, "name", "", "set name")// 在子命令version的Run方法中输出name  
Run: func(cmd *cobra.Command, args []string) {  fmt.Println("name is: ", name)
}// 执行命令  
./demo version --name a
输出:
name is:  a

3.2 使用局部 flag

让一个 flag 对某个命令生效,需要在该命令文件中创建一个变量存储 flag 值。

如需要给version命令定义一个局部flag name:

// 定义变量content  
var content string// 在version.go的init函数中添加flag  
versionCmd.Flags().StringVarP(&content, "content", "s", "false", "you are my sunshine")// 在子命令version.go的Run方法中输出  
Run: func(cmd *cobra.Command, args []string) {  fmt.Println("name is: ", name)fmt.Println("content is: ", content)
}// 执行命令  
./demo version --name a --content b
输出:
name is:  a
content is:  b  

3.3 cmd 只能访问到自己定义的 flag 值

注意:将 flags 存储到本地变量当中,那么其他命令「不可以」用某个命令的 局部flag。因为局部flag虽然是定义在某个命令文件中作为局部变量,cmd 文件夹下的其他文件可以访问这个变量,但是其他命令如果没有定义自己的 局部flag 获取相同 flag 值的话,获取到的值是该局部变量的零值。示例如下:

// 1. 添加一个新命令helloworld  
> cobra add helloworld// 2.输出content值  
Run: func(cmd *cobra.Command, args []string) {  fmt.Println("content is: ", sunshine)
}// 3.执行命令  
> ./demo helloworld --content b
Error: unknown flag: --content  // 输出错误未知flag, 原因就是该命令并未定义名为content的局部flag

3.4 必填 flag

// init文件中增加flag定义  
versionCmd.Flags().StringVarP(&sunshine, "content", "c", "", "my content")  
versionCmd.MarkFlagRequired("content")// 执行  
> ./demo version// 输出  
Error: required flag(s) "content" not set // 说明必须要设置flag content// 传入content flag  
> ./demo version --content b // 输出: content is:  b

3.5 全局 flag 配置

MinimumNArgs(int) 当参数数目低于配置的最小参数个数时报错  
MaximumNArgs(int) 当参数数目大于配置的最大参数个数时报错  
ExactArgs(int)    如果参数数目不是配置的参数个数时报错  
NoArgs            没有参数则报错  

示例如下:

// 添加一个命令path  
> cobra add path// 设置该命令需要且仅需要一个参数,并在Run方法中取出参数  
var pathCmd = &cobra.Command{  Use:   "path [path]",Short: "A brief description of your command",Long: "",  Args: cobra.ExactArgs(1),Run: func(cmd *cobra.Command, args []string) {fmt.Println("path called")fmt.Println("path:", args[0])},
}// 执行命令并输出  
> ./demo path /home // 输出path: /home  
http://www.khdw.cn/news/51984.html

相关文章:

  • 龙岗区住房建设局网站中牟网络推广外包
  • 怎么设计自己的个人网页yoast seo教程
  • 福州网站建设设计seo网站推广免费
  • 招代理的网站要怎么做的关键字挖掘
  • 在哪几个网站里可以做淘客seo排名点击
  • 怎么评判一个网站做的好与坏新乡网站优化公司价格
  • 那个视频网站可以做桌面背景线上营销方式主要有哪些
  • 签约网站做PPT搜索关键词优化服务
  • 网站换域名有没有影响刷关键词排名系统
  • 啪啪男女禁做视频网站网络公司推广公司
  • 设计师找工作的网站网络营销怎么做
  • 有什么兼职做it的网站精准网站seo诊断报告
  • 帮朋友做网站的坑热词搜索排行榜
  • 如何在第三方网站做推广windows优化大师官网
  • 长沙互联网公司招聘优化外包服务公司
  • 做自己的独立外贸网站西安关键词优化服务
  • wordpress邮件系统aso安卓优化公司
  • 网站制作培训课程搜狗站长工具平台
  • 昆明网站建设 技术支持厦门seo专业培训学校
  • 一流的锦州网站建设关键词推广是什么
  • 做网站的如何找业务seo投放是什么意思
  • 济南做网站哪里好湖南关键词优化推荐
  • 做我女朋友好不好套路网站关键词名词解释
  • 昆明公安系统网站seo优化软件免费
  • 赣州做网站的大公司seo优化关键词
  • 网站平台建设设备清单网推怎么推广
  • 国内最好的视频剪辑培训机构沈阳seo优化排名公司
  • 腾讯云网站安全认证郑州谷歌优化外包
  • 网站设计风格有哪些口碑营销策略
  • 网站后台管理是什么最近新闻热点国家大事