国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

golang獲取命令行參數

2019-11-06 06:38:49
字體:
來源:轉載
供稿:網友


對于C/C++,java,或C#程序,我們可以通過入口函數(main函數)直接獲取命令行參數:int main(int argc, char **argv){ PRintf("%s", argv[1]); return 0;}

但是,golang的入口函數沒有參數,無法直接獲取命令行參數:

fun main() {

}

對于golang,獲取命令行參數,只能通過golang提供的標準包os,或flag。

flag只能解析標準的命令行參數,例如:

program.exe -h 192.168.1.194 或 program --host 192.168.1.194(用空著將參數名和參數值分開)

program.exe -h=192.168.1.194 或 program --host=192.168.1.194(用"="將參數名和參數值分開)

program.exe -d(不帶值表示bool類型,并且置為true,不加-d表示該間值為false)

獲取方式如下:

 host := flag.String("h", "127.0.0.1", "host") daemon := flag.Bool("d", false, "daemon")

第一參數表示參數名,第二個參數表示參數值(默認),第三個參數為參數說明(意義描述)

但在使用host和daemon之前,需要調用flag.Parse()來解析命令行,因為前兩句僅僅將參數存儲地址告訴了flag,需要執行Parse方法之后,參數值才能寫入變量

對于非標準命令行格式(如 program.exe /h192.168.1.194),我們只能通過os.Args來獲取,然后自己解析

獲取方式如下:

hoststr := os.Args[1] (Args[0]為program.exe)

完整源碼如下:

package mainimport (	"flag"	"fmt"	"os")func main() {	host := flag.String("h", "127.0.0.1", "host")	daemon := flag.Bool("d", false, "daemon")	flag.Parse()	fmt.Println(*host)	fmt.Println(*daemon)	fmt.Println(os.Args)}

運行結果:

flagtest.exe -h 192.168.1.194 -d

191.168.1.194

true

[flagtest.exe -h 192.168.1.194 -d]

flagtest.exe -h 192.168.1.194

191.168.1.194

false

[flagtest.exe -h 192.168.1.194]


上一篇:ExcelUtil

下一篇:文件

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴中市| 鄄城县| 龙州县| 襄垣县| 图片| 色达县| 黄大仙区| 祁阳县| 平凉市| 静宁县| 丰县| 寿光市| 璧山县| 达日县| 三穗县| 申扎县| 松滋市| 明星| 汉川市| 西青区| 湾仔区| 贵定县| 临西县| 那曲县| 江孜县| 阳高县| 文山县| 皮山县| 黑龙江省| 许昌市| 洛川县| 麻江县| 丹棱县| 巢湖市| 七台河市| 利津县| 仁怀市| 江华| 佛坪县| 陈巴尔虎旗| 逊克县|