os 包和 flag 包获取命令行参数对比
优质
小牛编辑
150浏览
2023-12-01
通过 os 包获取命令行参数
- 如果用户没有传递参数
会
报错 需要
严格按照代码中的顺序传递参数, 否则会
造成数据混乱不能
指定参数的名称- 获取到的数据都是
字符串
类型
package main import ( "os" "fmt" ) int main(){ name := os.Args[1] age := os.Args[2] fmt.Println("name = ", name) fmt.Println("age = ", age) }
通过 flag 包获取命令行参数
- 如果用户没有传递参数
不会
报错 不需要
严格按照代码中的顺序传递参数,不会
造成数据混乱可以
指定参数的名称- 获取到的数据是我们自己指定的类型
package main import ( "flag" "fmt" ) int main(){ name := flag.String("name", "lnj", "请输入人的姓名") age := flag.Int("age", 33, "请输入人的年龄") // 2.注册解析命令行参数 flag.Parse() // 3.使用命令行参数 // 注意flag对应方法返回的都是指针类型, 所以使用时必须通过指针访问 fmt.Println("name = ", *name) fmt.Println("age = ", *age) }