首页 > 其他分享 >命令行应用之flag包

命令行应用之flag包

时间:2022-11-24 15:55:07浏览次数:33  
标签:命令行 fmt flag 应用 var import main name

1、 flag 基本使用和长短选项

package main

import (
	"flag"
	"fmt"
)

func main() {
	var name string
	flag.StringVar(&name, "name", "Go 语言编程之旅", "帮助信息")
	flag.StringVar(&name, "n", "Go 语言编程之旅", "帮助信息")
	flag.Parse()

	fmt.Printf("name: %s", name)
}

  

2、子命令

package main

import (
	"flag"
	"fmt"
)

var name string

func main() {
	flag.Parse()

	args := flag.Args()
	if len(args) <= 0 {
		return
	}

	switch args[0] {
	case "go":
		goCmd := flag.NewFlagSet("go", flag.ExitOnError)
		goCmd.StringVar(&name, "name", "Go 语言", "帮助信息")
		_ = goCmd.Parse(args[1:])
	case "php":
		phpCmd := flag.NewFlagSet("php", flag.ExitOnError)
		phpCmd.StringVar(&name, "n", "PHP 语言", "帮助信息")
		_ = phpCmd.Parse(args[1:])
	}

	fmt.Printf("name: %s", name)
}

注意:这里需要特别注意的是 flag.NewFlagSet 方法的第二个参数是 ErrorHandling,用于指定处理异常错误的情况处理,其内置提供以下三种模式:

const (
	// 返回错误描述
	ContinueOnError ErrorHandling = iota 
	// 调用 os.Exit(2) 退出程序
	ExitOnError       
	// 调用 panic 语句抛出错误异常
	PanicOnError                       
)

  

 

标签:命令行,fmt,flag,应用,var,import,main,name
From: https://www.cnblogs.com/mango1997/p/16922132.html

相关文章

  • 一类(One-Class)分类器的概念及应用领域
    前言本文内容由博客和论文复制而来,仅摘取了部分,原文请看文末参考资料。一类分类技术概念与传统的分类技术不同,一类分类技术仅采用隶属于一个类别的样本来训练分类器,其通......
  • 液位监测解决方案(工业路由器物联网应用)
    在饮料行业,制造了各种各样的液体产品,如浓缩液、水果混合物、果肉细胞、精油、果泥等。为了便于储存和有效分配,使用了罐、桶、罐车和大型容器。借助我们基于物联网的液位监......
  • 实验4 数组应用编程
    #include <stdio.h>#define N 2#define M 4int main() {    int a[N][M] = { {1, 9, 8, 4}, {2, 0, 2, 2} };    char b[N][M] = { {'1',......
  • SPC5744PFK1AMLQ9 规格参数 IC MCU 32BIT 专为汽车应用而设计
    专为汽车应用而设计HEXFET功率MOSFET采用最新工艺实现每硅极低导通电阻的技术地区该设计的其他特点是175°C接头工作温度、快速切换速度和改进重复的雪崩评级。这些特征结......
  • 命令行bat文件常用
    window电脑太卡了androidstudio卡成狗我估计是泄漏了?taskkill/f/imjava.exetaskkill/f/imaapt.exec盘不够用,重新分区又嫌弃麻烦?想快速释放几个G内存?看看c盘中隐......
  • 完美window 开发 ios应用
    我的电脑16g内存i7cpu只是虚拟机的磁盘系统我没有放在固态,所以ios模拟器启动了好像要1分钟左右。虚拟机为vmware12mac系统osx10.11有图有真相......
  • 【原创】从命令行创建比亚迪模拟器到使用官方sdk+as的模拟器界面工具列表显示并直接运
    吐槽开发比亚迪车载就必须使用比亚迪的androidsdk,导致频繁切换,导致模拟器啥的出现了很多问题。于是打算改成官方系统,然后提取出比亚迪android.jar中的sdkapi出来,然后还能......
  • redis-cli命令行采集信息时遇到的一个小疑问
    给客户巡检的时候,之前想当然看-c可以通过命令行运行一些命令,方便巡检采集信息,比如:[root@xweisrc]$./redis-cli-h127.0.0.1-aabc123-p7379-c"info"|head-n5......
  • stm32f030f4p6_定时器1应用
    坑人的PDF框图显示TIM1,2,3,6,14,15,16,17都在APB1上,然而它却在APB2才可以运行。可是在PDF框图和STM32CubeMX中都找不到APB2的存在却在stm32f0xx_rcc.h中找到了APB2的踪......
  • [ios应用开发第一篇] 上手运行第一个简单程序
    新建simpleapp,可以拖拽控件到main.storyboard中拖拽一个按钮,到视图,然后打开ViewControl.h加上​​​-(IBAction)btnClick;​​打开对应的.h插入#pragmamark-分......