golang的flag包

package main

import (
	"flag"
	"fmt"
)

var (
	root = flag.String("root", "/var/lib/docker/fakevol", "fake volumes root directory")
)

func main() {

	wordPtr := flag.String("word", "foo", "a string")

	numbPtr := flag.Int("numb", 42, "an int")

	boolPtr := flag.Bool("fork", false, "a bool")

	var svar string

	flag.StringVar(&svar, "svar", "bar", "a string var")

	flag.Parse()

	fmt.Println("word:", *wordPtr)
	fmt.Println("numb:", *numbPtr)
	fmt.Println("fork:", *boolPtr)
	fmt.Println("svar:", svar)
	fmt.Println("tail:", flag.Args())

}

执行 go build mytest.go

./mytest   -word=1 -numb=2 -fork=true -svar=4 11111111

输出结果:

word: 1

numb: 2

fork: true

svar: 4

tail: [11111111] (其它参数)

时间: 2024-10-08 13:11:31

golang的flag包的相关文章

golang的flag包源码解析与使用

当我们 import  package时,package内的全局常量和全局变量会进行初始化,并且紧接着init函数会执行.因此我们先看一下flag包的全局常量和全局变量. 一.flag包的全局常量.全局变量.init函数 所有全局常量和变量如下图所示. 1.三个常量 2.五个变量 原文地址:https://www.cnblogs.com/igoodful/p/11619523.html

golang flag包

go flag 包用来解析命令行参数,通过一个简单的例子来了解下 package main import (     "flag"     "fmt" ) func main() {     //参数1:命令行传递参数的名称 参数2:默认值 参数3:参数的说明     username := flag.String("name", "", "Input your name") //注意 username 是

Golang学习笔记--flag包

原文链接:http://www.cloudnoter.com/?p=131 flag包是用来处理命令参数的.总得来说,其通过将命令行标志与某一具体变量进行绑定,开发人员通过使用该变量进行业务逻辑处理. 一.FlagSet是该包的核心类型: type FlagSet struct { // Usage is the function called when an error occurs while parsing flags. // The field is a function (not a

GoLang中flag标签使用

正如其他语言一样,在 linux 系统上通过传入不同的参数来使得代码执行不同逻辑实现不同功能,这样的优点就是执行想要的既定逻辑而不需要修改代码重新编译与打包.在 Golang 语言中也为我们提供了相应的功能,直接上代码,在代码中会做详细的解释,当前运行环境为:Go-1.8.1 package main import ( "flag" "log" "os" ) func usage() { log.Fatalf("Usage: myPro

Golang官方log包详解

Golang官方log包详解 以下全是代码, 详解在注释中, 请从头到尾看 // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Package log implements a simple logging package. I

Go命令行参数解析flag包

go语言提供的flag包可以解析命令行的参数,代码: package main import ( "flag" "fmt" ) func main() { //第一个参数,为参数名称,第二个参数为默认值,第三个参数是说明 username := flag.String("name", "", "Input your username") flag.Parse() fmt.Println("Hell

golang的sync包例子

package main import ( "fmt" "sync" ) var wg sync.WaitGroup func asyncTestFunc() { for i := 0; i < 100; i++ { fmt.Println(i) } wg.Done() } func main() { wg.Add(1) go asyncTestFunc() wg.Wait() } golang的sync包例子

Go_16:GoLang中flag标签使用

直接上代码,在代码中会做详细的解释,当前运行环境为:Go-1.8.1 package main import ( "flag" "log" "os" ) func usage() { log.Fatalf("Usage: myProgram [-s server] [-t isShowTimeStamps] <subject> \n") } func printMsg(message string) { log.P

golang的io包

package io import "io" io包提供了对I/O原语的基本接口.本包的基本任务是包装这些原语已有的实现(如os包里的原语),使之成为共享的公共接口,这些公共接口抽象出了泛用的函数并附加了一些相关的原语的操作. 因为这些接口和原语是对底层实现完全不同的低水平操作的包装,除非得到其它方面的通知,客户端不应假设它们是并发执行安全的. Index Variables type Reader type Writer type Closer type Seeker type Re