Golang Flag基本使用

2022-09-11 04:42:13 字數 2016 閱讀 9387

flag.parse()

flag其他函式

例項如果你只是簡單的想要獲取命令列引數,可以像下面的**示例一樣使用os.args來獲取命令列引數。

func

main()

}}

$ ./main.exe a b c 123

test

for flag

args[0]

=c:\main.exe

args[1]

=aargs[2]

=bargs[3]

=cargs[4]

=123

args[5]

=test

args[6]

=for

args[7]

=flag

flag包支援的命令列引數型別有bool、int、int64、uint、uint64、float float64、string、duration

有以下兩種常用的定義命令列flag引數的方法。

flag.

type

(flag名, 預設值, 幫助資訊)

*type

例如我們要定義姓名、年齡、婚否三個命令列引數,我們可以按如下方式定義:

func

main()

需要注意的是,此時name、age、married、delay均為對應型別的指標

flag.

typevar

(type指標, flag名, 預設值, 幫助資訊)

例如我們要定義姓名、年齡、婚否三個命令列引數,我們可以按如下方式定義:

func

main()

通過以上兩種方法定義好命令列flag引數後,需要通過呼叫flag.parse()來對命令列引數進行解析。

flag.

parse

()

那麼「flag.parse()」倒是是用來解析什麼的?我們從「flag.type()」看到這個函式返回了乙個指標,比如在 flag.bool 這裡會新建乙個bool型別的變數,將預設值賦值給它,然後返回這個bool型別的指標。在 parse函式裡,對這個指標所指向的值進行更新。

支援的命令列引數格式有以下幾種:

flag.

args()

//返回命令列引數後的其他引數,以string型別

flag.

narg()

//返回命令列引數後的其他引數個數

flag.

nflag()

//返回使用的命令列引數個數

package main

import

("flag"

"fmt"

"time"

)func

main()

$ ./main.exe -name wxf -age 19 -married false -d 1ms

wxf 19

true 0s

[false -d 1ms]

33

$ ./main.exe -help

usage of c:\users\

68725

\desktop\zaptest\main.exe:

-age int

年齡 (default 18

) -d duration

延遲的時間間隔

-married

婚否-name string

姓名 (default "張三"

)

golang flag命令列引數的簡單介紹

在寫命令列程式 工具 server 時,對命令引數進行解析是常見的需求。各種語言一般都會提供解析命令列引數的方法或庫,以方便程式設計師使用。在 go 標準庫中提供了乙個包 flag,方便進行命令列解析。定義flags 解析flag 在所有的 flag 定義完成之後,可以通過呼叫 flag.parse...

oracle基本使用

ocm oracle 大師認證 ocp oracle 專家認證 oca oracle 初級認證 認證 1千 1.oracle啟動 電腦 管理 服務 oracleorahome90tnslistener oracleservice 你要開啟的資料庫 2.oracle使用者 syssystem scot...

Git基本使用

設定使用者名稱與郵箱 git config global user.name my name git config global user.email my email.com 從已有的git庫中提取 每次更改 的操作 更新本地 到最新版本 需要merge才能合到本地 中 git fetch 合併更...