源碼文件的三種類型: 命令源文件:可以直接運行的程式,可以不編譯而使用命令“go run”啟動、執行。 庫源碼文件 測試源碼文件 面試題:命令源碼文件的用途是什麼,怎樣編寫它? 典型回答: 命令源碼文件是程式的運行入口,是每個可獨立運行的程式必須擁有的。 我們可以通過構建或安裝生成與其對應的可執行文 ...
源碼文件的三種類型:
- 命令源文件:可以直接運行的程式,可以不編譯而使用命令“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講》專欄,如有侵權,請聯繫我刪除。