golang bool 转 int_Golang : flag 包简介

在 Golang 程序中有很多种方法来处理命令行参数。简单的情况下可以不使用任何库,直接处理 os.Args;其实 Golang 的标准库提供了 flag 包来处理命令行参数;还有第三方提供的处理命令行参数的库,比如 Pflag 等。本文将介绍 Golang 标准库中 flag 包的用法。本文的演示环境为 ubuntu 18.04。

入门 demo


在 Go workspace 的 src 目录下创建 flagdemo 目录,并在目录下创建 main.go 文件,编辑其内容如下:

package main

import "flag"
import "fmt"

// 定义命令行参数对应的变量,这三个变量都是指针类型
var cliName = flag.String("name", "nick", "Input Your Name")
var cliAge = flag.Int("age", 28, "Input Your Age")
var cliGender = flag.String("gender", "male", "Input Your Gender")

// 定义一个值类型的命令行参数变量,在 Init() 函数中对其初始化
// 因此,命令行参数对应变量的定义和初始化是可以分开的
var cliFlag int
func Init() {
    
    flag.IntVar(&cliFlag, "flagname", 1234, "Just for demo")
}

func main() {
    
    // 初始化变量 cliFlag
    Init()
    // 把用户传递的命令行参数解析为对应变量的值
    flag.Parse()
    
    // flag.Args() 函数返回没有被解析的命令行参数
    // func NArg() 函数返回没有被解析的命令行参数的个数
    fmt.Printf("args=%s, num=%dn", flag.Args(), flag.NArg())
    for i := 0; i != flag.NArg(); i++ {
    
        fmt.Printf("arg[%d]=%sn", i, flag.Arg(i))
    }
    
    // 输出命令行参数
    fmt.Println("name=", *cliName)
    fmt.Println("age=", *cliAge)
    fmt.Println("gender=", *cliGender)
    fmt.Println("flagname=", cliFlag)
}

使用 flag 包前要通过 import 命令导入该包:

import "flag"

定义一个整型的参数 age,返回指针类型的变量:

var cli
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值