golang

07-Go语言命令行参数-指趣学院

2018-09-16  本文已影响254人  极客江南

go命令行操作指令

|---项目文件夹
-----------|--------src文件夹
-----------------------------|--------main文件夹
-----------------------------|--------其它文件夹
-----------|--------bin文件夹
-----------|--------pkg文件夹



通过os包获取命令行参数

#include <stdio.h>
int main(int argc, const char * argv[])
{
    for(int i = 0; i < argc; i++){
        printf("argv[%d] = %s\n", i, argv[i]);
    }
    return 0;
}
package main

import (
    "fmt"
    "os" // 用于获取命令行参数的包
)
func main() {
    // 1.获取传入参数个数
    num := len(os.Args)
    // 2.打印所有获取到的参数
    for i := 0; i < num; i++ {
        fmt.Println(os.Args[i])
    }
}

通过flag包获取命令行参数

package main
import (
    "flag"
    "fmt"
)
func main() {
    /*
    flag.Xxxx(name, value, usage)
    第一个参数: 命令行参数名称
    第二个参数: 命令行参数对应的默认值
    第三个参数: 命令行参数对应的说明
    */
    // 1.设置命令行参数
    name := flag.String("name", "lnj", "请输入人的姓名")
    age := flag.Int("age", 33, "请输入人的年龄")
    // 2.将命令行参数解析到注册的参数
    flag.Parse()
    // 3.使用命令行参数
    // 注意flag对应方法返回的都是指针类型, 所以使用时必须通过指针访问
    fmt.Println("name = ", *name)
    fmt.Println("age = ", *age)
}
package main
import (
    "flag"
    "fmt"
)
func main() {
    /*
    flag.Xxxx(*type, name, value, usage)
    第一个参数:保存命令行参数变量地址
    第二个参数: 命令行参数名称
    第三个参数: 命令行参数对应的默认值
    第四个参数: 命令行参数对应的说明
    */
    // 1.定义变量,保存命令行参数的值
    var name string
    var age int
    // 2.设置命令行参数
    flag.StringVar(&name, "name", "lnj", "请输入人的姓名")
    flag.IntVar(&age, "age", 33,"请输入人的姓名")
    // 3.注册解析命令行参数
    flag.Parse()
    // 4.使用命令行参数
    fmt.Println("name = ", name)
    fmt.Println("age = ", age)
}

os包和flag包获取命令行参数对比

package main
import (
    "os"
    "fmt"
)
int main(){
    name := os.Args[1]
    age := os.Args[2]
    fmt.Println("name = ", name)
    fmt.Println("age = ", age)
}
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)
}
上一篇下一篇

猜你喜欢

热点阅读