简述go使用flag包,实现自己的命令行输入参数.\Hello.exe -flagname 987 -n 777

//-- 声明一个包
//-- 一个目录下的同级文件属于同一个包。
//-- 一个Go语言程序必须有且仅有一个 main 包。如果一个程序没有 main 包,那么编译时将会出错,无法生成可执行文件。
package main

//-- 导入程序中所依赖的包;导入的包中不能含有代码中没有使用到的包,否则Go编译器会报编译错误
import (
	"flag"
	"fmt"
)

//-- 当一个变量被声明之后,系统自动赋予它该类型的零值
//-- 所有的内存在 Go 中都是经过初始化的
var name int
var flagvar int
var nFlag = flag.Int("n", 1234, "help message for flag n")

// var (
// 	a int
// 	b string
// 	c []float32
// 	d func() bool
// )

// func foo(a int) (b int) {
// 	ba := 9 + a
// 	return ba
// }

func init() {
	flag.IntVar(&flagvar, "flagname", 12345, "help message for flagname")
	flag.Parse()
	fmt.Println(flagvar)
	fmt.Println("----1--")

}

func main() {
	flag.Parse()
	//fmt.Println("Hello World!")
	//fmt.Println(foo(4))
	fmt.Println("----1.1--")
	fmt.Println(flagvar)
	fmt.Println("---2---")
	fmt.Println(nFlag)
	fmt.Println(*nFlag)

	fmt.Println("---3---")
	//init()

}

上述代码如果go的环境安装配置好了,就可以在vscode终端编译了

PS D:\Hello> go build     //-- 编译
PS D:\Hello> .\Hello.exe  //-- 执行可执行文件

执行的结果是

12345
----1--
----1.1--
12345
---2---
0xc000014088
1234
---3---

挨个比对打印输出,发现打印输出都是 代码中设置的默认值。

现在运行另一个命令

PS D:\Hello> .\Hello.exe -h

打印输出

Usage of D:\Hello\Hello.exe:
  -flagname int
        help message for flagname (default 12345)
  -n int
        help message for flag n (default 1234)

再加上参数的值,此时会发现打印出来的参数值,已经被修改了
命令行输入

PS D:\Hello> .\Hello.exe -flagname 987 -n 777

输出

987
----1--
----1.1--
987
---2---
0xc0000140f0
777
---3---

注意: flag.Parse() 的作用, 如果不加,则打印输出还是默认值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值