【Golang】命令源码文件

用途

命令源码文件是程序的运行入口,是每个可独立运行的程
序必须拥有的。我们可以通过构建或安装,生成与其对应的可执行文件,后者一般会与该命令源码文件的直接父目录同名。
如果一个源码文件声明属于main包,并且包含一个无参数声明且无结果声明的main函数,那么它就是命令源码文件。

package main
import "fmt"
func main() {
fmt.Println("Hello, world!")
}

当需要模块化编程时,我们往往会将代码拆分到多个文件,甚至拆分到不同的代码包中。但无论怎样,对于一个独立的程序来说,命令源码文件永远只会也只能有一个。如果有与命令源码文件同包的源码文件,那么它们也应该声明属于main包。

接收参数 & 自定义参数说明

我直接用一段代码来说明

package main
import 
(      
        "flag"      
        "fmt"      
        "os"
)


var pwd string
var name string
func init()
{      
    flag.StringVar(&name,"name","admin","The is name.")      
    flag.StringVar(&pwd,"pwd","admin","The is pwd.")}
func main() 
{
    flag.Usage = func() 
    {            
        fmt.Fprintf(os.Stderr,"Usage of %s:\n","question")            
        flag.PrintDefaults()      
    }      
    flag.Parse()      
    fmt.Printf("name=%s , pwd=%s",name,pwd)}
}

执行结果:

在这里插入图片描述

帮助显示:

在这里插入图片描述

代码解析:

flag.StringVar(&name,"name","admin","The is name.")      

函数flag.StringVar接受 4 个参数
第 1 个参数是用于存储该命令参数值的地址,具体到这里就是在前面声明的变量name的地址了,由表达式&name表示。
第 2 个参数是为了指定该命令参数的名称,这里是name。
第 3 个参数是为了指定在未追加该命令参数时的默认值,这里是everyone。
至于第 4 个函数参数,即是该命令参数的简短说明了,这在打印命令说明时会用到。

下面这种方式也与之上的相同,一种需要申明,一种直接接受值

var name = flag.String("name", "everyone", "The greeting object.")

    flag.Parse()      

函数flag.Parse用于真正解析命令参数,并把它们的值赋给相应的变量。如果没有使用该函数将不会赋值成功。


     fmt.Fprintf(os.Stderr,"Usage of %s:\n","question")            

该语句用于编写命令源码文件的参数使用说明,我们可以看到使用–help时的输出,就由该语句控制

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Maybe_ch

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值