开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:命令行参数基本使用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/626/detail/9734
命令行参数基本使用
内容介绍:
一、命令行参数
二、应用案例
一、命令行参数
1.需求
希望能够获取到命令行输入的各种参数,该如何处理?如下:
=>命令行参数
D:\go project\src\go_code>test.exe tom c:/aa/bb/conf it.init 88
去执行可执行文件执行程序时顺带传入一些参数,在命令行后面,直接带了一些参数进去,例如 tom、路径、88
2.如何在程序里,也就是在 test.exe 程序里拿到参数?
在 os 包里有一个切片 Args 是一个 string 的切片,这个切片可以存储所有的命令行参数。
3.文档
os 包里面有 Variables 变量(是包已经定义好的全局变量)
var Args[]string 大写的 A 是全局变量
作用:是一个 string 切片,Args 保管了命令行参数,第一个是程序名,也就是说切片里的第一个元素就是这个程序的名称,从第二个开始,是参数值。
二、应用案例
1.基本介绍
做开发时,有可能需要命令行得到参数,例如配置文件的路径、端口号,监听的端口号做的更灵活可以在执行程序时在命令行中传入一些动态的参数。动态参数可以通过 os.Args 切片获取
2.请编写一段代码,可以获取命令行各个参数
D:\go project\src\go_code>test.exe tom c:/aaa/bbb/test.log 99
参数个数=:4
args[0]=test.exe
args[1]=tom
args[2]=c:/aaa/bbb/test.log
args[3]=99
第一个参数为程序名称,其余为输入参数的具体值
3.代码实现
新建文件夹 argsDemo
Package main
import(
"os"
)
func main(){
fmt.Print1n("命令行的参数有", 1en(os.Args))
//遍历 os.Args 切片,就可以得到所有的命令行输入参数值
for i, v := range os.Args {
fmt.Printf("args[%v]=%v\n", i, v)
}
}
4.运行效果
D:\goproject\src\go_code\chapter14\argsdemo>test.exe tom d:/aaa/bbb/init.log 909
命令行的参数有 4
args[0]=test.exe
largs[1]-tom
args[2]=d:/aaa/bbb/init.log
args[3]=909
D:\goproject\src\go_code\chapter14\argsdemo>