package flag

flag包实现了命令行参数的解析。

package main

import (
	"flag"

	"fmt"
)

var flagvar int
var flagvar2 string

//自定义docValue类型
type docValue string

func (d *docValue) String() string {
	return fmt.Sprint(*d)
}

func (d *docValue) Set(value string) error {
	*d = docValue(value)
	return nil
}

var flagvar3 docValue

func init() {
	//两个命令行参数 flagname,test,他们的值分别解析给flagvar,flagvar2两个变量
	//使用方式 go run main.go -flagname=990 -test=666
	flag.IntVar(&flagvar, "flagname", 12345, "help message for flagname")
	flag.StringVar(&flagvar2, "test", "flagvar2 value", "help message for test")
}

func main() {
	//自定义了一个docValue类型的变量flagvar3,用于接受-myname参数的值
	//go run main.go -flagname=990 -test=666 -myname=aaaa
	flag.Var(&flagvar3, "myname", "help message for myname")

	//参数解析到flagvar变量中
	flag.Parse()
	fmt.Println(flagvar, flagvar2, flagvar3)

}
时间: 2024-10-02 21:45:15

package flag的相关文章

命令行参数(flag包)

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

Rootkit Hacking Technology && Defence Strategy Research

目录 1. The Purpose Of Rootkit 2. Syscall Hijack 3. LKM Module Hidden 4. Network Communication Hidden 5. File Hidden 6. Process Hidden 7. Hidden Port Remote Reverse Connections 8. Programe Replacing 1. The Purpose Of Rootkit Basically, the purpose of r

Go学习路径--相关基础

现在开始接触Go一段时间了,基本路径就是看基础学习材料,开始写项目,有问题找解决问题的方法.这里记录一下学习过程. go相关文章 Golang适合高并发场景的原因分析 go build 不同系统下的可执行文件 Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能. 1.Mac下编译Linux, Windows平台的64位可执行程序: $ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go $ CGO_ENABLED=0 G

Docker installation in sles SP2

Please refer to official site for installation  details :  https://docs.docker.com/install/linux/docker-ee/suse/ Example installation for SUSE Linux SP2 12.2 + Docker  17.06.2 1. Prerequisites  1.1. Get Docker EE URL by Registration , go to:  https:/

深入USB流量数据包的抓取与分析

0x01 问题提出 在一次演练中,我们通过wireshark抓取了一个如下的数据包,我们如何对其进行分析? 0x02 问题分析 流量包是如何捕获的? 首先我们从上面的数据包分析可以知道,这是个USB的流量包,我们可以先尝试分析一下USB的数据包是如何捕获的. 在开始前,我们先介绍一些USB的基础知识.USB有不同的规格,以下是使用USB的三种方式: l USB UART l USB HID l USB Memory UART或者Universal Asynchronous Receiver/Tr

内核启动卡在 Starting kernel ...

一.有时log是这样的 Card did not respond to voltage select! 9889800 bytes read in 237 ms (39.8 MiB/s) 70155 bytes read in 5 ms (13.4 MiB/s) ## Flattened Device Tree blob at 48000000 Booting using the fdt blob at 0x48000000 Using Device Tree in place at 00000

golang中的viper示例

这是第二次实操viper了, 年纪大了就多练练,才能记住. http://go.coder55.com/article/6589 https://github.com/spf13/viper package main import ( "github.com/spf13/pflag" "github.com/spf13/viper" "golang.org/x/net/context" "github.com/fsnotify/fsno

There is a problem parsing the package(android)

android phone when you install the application there will inevitably be "a problem parsing the package" is displayed and you can not successfully install the software. Description of the problem and solutions:1.android system or installed softwa

torchnet package (1)

torchnet package (1) torchnet torchnet torchnet是用于torch的代码复用和模块化编程的框架,主要包含四个类 Dataset 以不同的方式对数据进行预处理 Engine 训练/测试机器学习方法 Meter 评估方法性能 Log 日志 Documentation torchnet的调用 local tnt = require 'torchnet' tnt.Dataset() torchnet提供了多种即插即用的数据容器(data container),