美文网首页
21.Go语言·命令行参数

21.Go语言·命令行参数

作者: 一枼落知天下 | 来源:发表于2019-06-10 15:03 被阅读0次

    main.go

    // Go语言·命令行
    package main
    
    //  包的本质是创建不同的文件夹
    //  go的每一个文件都是属于一个包的
    //  go以包的形式管理项目和文件目录。
    //  import "包的路径"
    import (
        model "day27/model"
    )
    
    var content string = `
    ————————————————Go语言·命令行————————————————————
    一、命令行参数
    
    二、flag包解析命令行参数
        flag包实现了命令行参数的解析。
        
    `
    
    
    func main() {
        model.Entry()
    }
    

    model/Utils.go

    package model
    
    import (
        "fmt"
        "os"
        "flag"
    )
    
    /**
     * [Init 入口]
     * @author Jhou Shuai
     * @datetime 2019-05-18T11:58:33+0800
     */
    func Entry() {
        cmdFlag()
    }
    
    /**
     * [cmdArgs 命令行参数]
     * @author Jhou Shuai
     * @datetime 2019-06-10T14:25:11+0800
     */
    func cmdArgs() {
        for i ,val := range os.Args {
            fmt.Printf("args[%v]=%v \n",i,val)
        }
    }
    
    /**
     * [cmdFlag flag包实现了命令行参数的解析]
     * @author Jhou Shuai
     * @datetime 2019-06-10T14:53:29+0800
     * $ go run main.go -u root -p 123456 -h 10.0.0.12 -port 6000
     * user:root pwd=123456,host=10.0.0.12,port=6000
     */
    func  cmdFlag() {
        // 定义或声明变量,用于接收命令行参数
        var (
            user string
            pwd string
            host string
            port int
        )
        // user 接收 -u zhoushuai 
        // "u"  -u 指定参数
        // ""   默认值
        // "用户名,默认为空" 说明
        flag.StringVar(&user, "u","","用户名,默认为空")
        flag.StringVar(&pwd,   "p","","密码,默认为空")
        flag.StringVar(&host,   "h","localhost","主机名,默认为localhost")
        flag.IntVar(&port,"port", 3306, "端口号,默认3306")
    
        // os.Args[1:]
        flag.Parse()
    
        fmt.Printf("user:%v,pwd=%v,host=%v,port=%v \n",
        user,pwd,host,port)
    }
    

    相关文章

      网友评论

          本文标题:21.Go语言·命令行参数

          本文链接:https://www.haomeiwen.com/subject/doyzxctx.html