zoukankan      html  css  js  c++  java
  • [Golang学习笔记] 02 命令源码文件

    源码文件的三种类型:

    • 命令源文件:可以直接运行的程序,可以不编译而使用命令“go run”启动、执行。
    • 库源码文件
    • 测试源码文件

    面试题:命令源码文件的用途是什么,怎样编写它?

    典型回答:

    命令源码文件是程序的运行入口,是每个可独立运行的程序必须拥有的。

    我们可以通过构建或安装生成与其对应的可执行文件,后者一般会与该命令源码文件的直接父目录同名。

    典型特征为文件声明属于main包,并且包含一个无参数、无结果声明的main函数,例如文件demo1.go:

    1 package main
    2  
    3 import "fmt"
    4  
    5 func main() {
    6     fmt.Println("Hello, world!")
    7 }

    扩展知识: 

    1.接受参数:
    [1]导入flag包,这是Go 语言标准库中专门用于接收和解析命令参数的包。

    [2]设置命令参数
    接受 4 个参数。

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

    2.命令源码文件传入参数,查看说明
    2.1. go run demo2.go -name="Robert"
    2.2. go run demo2.go --help

    3. 自定义命令源码文件的参数使用说明
    flag.Usage

    4. flag.CommandLine重新赋值
    我们在调用flag包中的一些函数(比如StringVar、Parse等等)的时候,实际上是在调用flag.CommandLine变量的对应方法。


    思考题:

    Q1:默认情况下,我们可以让命令源码文件接受哪些类型的参数值?
    A1:int(int|int64|uint|uint64),
    float(float|float64)
    string,
    bool,
    duration(时间),
    var(自定义)

    Q2:我们可以把自定义的数据类型作为参数值的类型吗?如果可以,怎样做?
    A2:关键就是使用flag.var(),关键点在于需要实现flag包的Value接口。

    本学习笔记是仅为了总结自己学到的Go语言核心知识,方便以后回忆,文中部分内容摘录自极客时间的《Go语言核心36讲》专栏,如有侵权,请联系我删除。

  • 相关阅读:
    屏幕尺寸相关
    关于sqlite的数据库操作
    Service服务
    BroadcastReceiver广播接收器
    将博客搬至CSDN
    win7+WinDbg调试系统内核
    驱动
    驱动开发,走起!!哈哈
    动态链接库DLL
    2013年12月24号感受
  • 原文地址:https://www.cnblogs.com/fyql/p/10187761.html
Copyright © 2011-2022 走看看