golang中往脚本传递参数的两种用法os.Args和flag

1. os.Args

package main

import (
	"fmt"
	"os"
)

func main() {
	// 执行:./demo.exe 127.0.0.1 8000
	// 输出切片类型:[C:\Users\mayanan\Desktop\pro_go\day01\demo.exe 127.0.0.1 8000]
	fmt.Println(os.Args)

}

  

2. flag

package main

import (
	"flag"
	"fmt"
)

func main() {
	//fmt.Println(os.Args)
	// 如果想支持 ./demo.exe -h 127.0.0.1 -p 8080 则需要使用flag模块来进行处理
	// 定义方式1
	host := flag.String("h", "127.0.0.1", "主机")
	port := flag.Int("p", 8000, "端口")

	// 定义方式2
	var email string
	flag.StringVar(&email, "e", "myn_net@163.com", "邮箱")

	flag.Parse()
	fmt.Println(*host, *port, email)

	// 构建方法: go build -o demo.exe  -o可以指定构建成的文件名称
	// 执行方法
	// ./demo.exe -h 192.168.1.1 -p 8888 -e 1341935532@qq.com   输出:192.168.1.1 8888 1341935532@qq.com
	// ./demo.exe -h=192.168.1.1 -p=8888 -e=1341935532@qq.com
	// 或者使用默认值:直接./demo.exe  输出默认值:127.0.0.1 8000 myn_net@163.com

}

  

posted @ 2021-10-16 18:49  专职  阅读(1700)  评论(0编辑  收藏  举报