golang flag包

go flag 包用来解析命令行参数,通过一个简单的例子来了解下

package main

import (
    "flag"
    "fmt"
)

func main() {
    //参数1:命令行传递参数的名称  参数2:默认值   参数3:参数的说明
    username := flag.String("name", "", "Input your name") 
  //注意 username 是string 的指针 type: *string 
    //  在例如:

     // var ip = flag.Int("flagname", 1234, "help message for flagname")

   //ip 的类型是: *int   

    flag.Parse()
    fmt.Println("Hello,", *username)
}编译执行的结果如下:
davin-mac-wifi:goexample davin$ go build main.go 
davin-mac-wifi:goexample davin$ ./main -name=world   //这就是参数name的名称
Hello, world
davin-mac-wifi:goexample davin$ ./main 
Hello, 
davin-mac-wifi:goexample davin$ pwd
/Users/davin/Documents/go/workspace/src/goexample
时间: 2024-08-11 05:43:35

golang flag包的相关文章

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包源码解析与使用

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

Go命令行参数解析flag包

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

Golang fmt包使用小技巧

h1 { margin-top: 0.6cm; margin-bottom: 0.58cm; direction: ltr; color: #000000; line-height: 200%; text-align: justify; page-break-inside: avoid; orphans: 0; widows: 0 } h1.western { font-family: "Times New Roman", serif; font-size: 22pt } h1.cjk

Go使用flag包开发命令行工具

flag包是Go语言标准库提供用来解析命令行参数的包,使得开发命令行工具更为简单 常用方法 1.flag.Usage 输出使用方法,如linux下ls -h的帮助输出 2.flag.Type(参数名, 默认值, 使用提示) Type为类型 如String, Int, Uint 调用相应的flag.Sring flag.Int flag.Uint方法 方法返回相应类型的指针 3.flag.Type(指针, 参数名, 默认值, 使用提示) 与flag.Type方法基本相同,不同的是多一个指针参数,将

命令行参数(flag包)

命令行参数 命令行参数可以直接通过 os.Args 获取,另外标准库的 flag 包专门用于接收和解除命令行参数 os.Args 简单的只是从命令行获取一个或一组参数,可以直接使用 os.Args.下面的这种写法,无需进行判断,无论是否提供了命令行参数,或者提供了多个,都可以处理: // 把命令行参数,依次打印,每行一个 func main() { for _, s := range os.Args[1:] { fmt.Println(s) } } flag 基本使用 下面的例子使用了两种形式的

3.Golang的包导入

1.golang的源码文件可以随意命名,但是属于同一个包的源文件必须声明 package base 2.golang的包引入规则 import ( "fmt" #系统包直接写名字 "github.com/user/stringutil" #其余包 写 src 下的绝对路径 ) go help importpath A few common code hosting sites have special syntax: Bitbucket (Git, Mercuria

Golang Context 包详解

Golang Context 包详解 0. 引言 在 Go 语言编写的服务器程序中,服务器通常要为每个 HTTP 请求创建一个 goroutine 以并发地处理业务.同时,这个 goroutine 也可能会创建更多的 goroutine 来访问数据库或者 RPC 服务. 当这个请求超时或者被终止的时候,需要优雅地退出所有衍生的 goroutine,并释放资源.因此,我们需要一种机制来通知衍生 goroutine 请求已被取消. 比如以下例子,sleepRandom_1 的结束就无法通知到 sle

简析 Golang IO 包

简析 Golang IO 包 io 包提供了 I/O 原语(primitives)的基本接口.io 包中定义了四个最基本接口 Reader.Writer.Closer.Seeker 用于表示二进制流的读.写.关闭和寻址操作.这些原语和接口是对底层操作的封装,因此如没有特殊说明,这些原语和接口都不能被视为线程安全的. Reader Reader 接口封装了基本的 Read 方法.Read 读取长度为 len(p) 字节的数据,并写入到 p.返回结果包含读取数据字节数(0 <= n <= len(