最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語(yǔ)言庫(kù)系列之flag的具體使用

 更新時(shí)間:2020年04月02日 09:37:28   作者:平也  
這篇文章主要介紹了Go語(yǔ)言庫(kù)系列之flag的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

背景

終端(命令行)操作是程序員的必備技能,但是你知道怎么通過golang制作出如下命令嗎?

$ flag girl -h
Usage of girl:
 -height int
  身高 (default 140)

$ flag girl --height 170

恭喜你獲得了身高 170 的女朋友

極速上手

整個(gè)實(shí)現(xiàn)非常簡(jiǎn)單,只需要5個(gè)步驟

第一步,引庫(kù)

import "flag"

第二步,定義變量

定義該變量的作用是存儲(chǔ)命令行參數(shù)傳來的值

var height int

第三步,配置命令信息

在main函數(shù)或init函數(shù)中加入

flag.IntVar(&height, "height", 140, "身高")
  • 第一個(gè)參數(shù)是定義的變量引用
  • 第二個(gè)參數(shù):命令的名稱
  • 第三個(gè)參數(shù):命令參數(shù)的默認(rèn)值
  • 第四個(gè)參數(shù):命令的用法提示

第四步,解析參數(shù)

在main函數(shù)中追加

flag.Parse()

第五步,打印變量

在main函數(shù)中追加

fmt.Println("恭喜你獲得了身高", height, "的女朋友")

大功告成,感興趣的同學(xué)可以自行測(cè)試。

完整代碼

package main

import (
 "flag"
 "fmt"
)

var height int

func main() {
 flag.IntVar(&height, "height", 140, "身高")
 flag.Parse()
 fmt.Println("恭喜你獲得了身高", height, "的女朋友")
}

高手進(jìn)階

支持多種執(zhí)行方式

在終端執(zhí)行時(shí),以下幾種傳參方式都被支持

$ girl -height 170
$ girl --height 170
$ girl --height=170
$ girl -height=170

支持多種參數(shù)值類型

目前支持字符串、布爾、整型、浮點(diǎn)、時(shí)間等多種類型,完全該所有場(chǎng)景。

布爾類型支持多種寫法

雖然布爾只有true或false,但寫法卻可以各種變種,非常騷氣,支持的寫法有

1, 0, t, f, T, F, true, false, TRUE, FALSE, True, False

隱式處理接收的參數(shù)值

如果我要悄悄地把傳入身高減去5厘米怎么辦?

第一步,定義一個(gè)height類型

type height int

第二步,實(shí)現(xiàn)flag.Value接口的兩個(gè)方法

func (h *height) String() string {
 return fmt.Sprint(*h)
}

func (h *height) Set(value string) error {
 valueInt, _ := strconv.Atoi(value)
 *h = height(valueInt - 5)
 return nil
}

String方法用于格式化值,Set方法用于處理變量設(shè)置時(shí)候的邏輯。

第三步,定義height類型變量

var heightFlag height

第四步,主函數(shù)配置及解析

func main() {
 flag.Var(&heightFlag, "height", "身高")
 flag.Parse()
 fmt.Println(heightFlag)
}

代碼與極速上手中的主函數(shù)內(nèi)容大致相同,只是調(diào)用了flag.Var方法,該方法不需要傳入默認(rèn)值。

到此這篇關(guān)于Go語(yǔ)言庫(kù)系列之flag的具體使用的文章就介紹到這了,更多相關(guān)Go flag內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語(yǔ)言轉(zhuǎn)換所有字符串為大寫或者小寫的方法

    Go語(yǔ)言轉(zhuǎn)換所有字符串為大寫或者小寫的方法

    這篇文章主要介紹了Go語(yǔ)言轉(zhuǎn)換所有字符串為大寫或者小寫的方法,實(shí)例分析了ToLower和ToUpper函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • go使用支付寶沙箱實(shí)現(xiàn)支付寶支付的操作步驟

    go使用支付寶沙箱實(shí)現(xiàn)支付寶支付的操作步驟

    支付寶沙箱支付是支付寶提供的一個(gè)測(cè)試環(huán)境,用于開發(fā)者在不影響真實(shí)交易的情況下進(jìn)行支付接口的開發(fā)和調(diào)試,本文給大家介紹了go使用支付寶沙箱實(shí)現(xiàn)支付寶支付的操作步驟,文中有詳細(xì)的代碼示例和圖文供大家參考,需要的朋友可以參考下
    2024-03-03
  • Golang 如何限制木馬圖片上傳服務(wù)器的實(shí)例

    Golang 如何限制木馬圖片上傳服務(wù)器的實(shí)例

    本文主要介紹了Golang 如何限制木馬圖片上傳服務(wù)器的實(shí)例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Go?函數(shù)中獲取調(diào)用者的函數(shù)名和文件名及行號(hào)

    Go?函數(shù)中獲取調(diào)用者的函數(shù)名和文件名及行號(hào)

    這篇文章主要介紹了Go?函數(shù)中獲取調(diào)用者的函數(shù)名和文件名及行號(hào),文章圍主題詳細(xì)內(nèi)容展開相關(guān)介紹,感興趣的小伙伴可以參考一下
    2022-05-05
  • go語(yǔ)言中布隆過濾器低空間成本判斷元素是否存在方式

    go語(yǔ)言中布隆過濾器低空間成本判斷元素是否存在方式

    這篇文章主要為大家介紹了go語(yǔ)言中布隆過濾器低空間成本判斷元素是否存在方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 關(guān)于go平滑重啟庫(kù)overseer實(shí)現(xiàn)原理詳解

    關(guān)于go平滑重啟庫(kù)overseer實(shí)現(xiàn)原理詳解

    這篇文章主要為大家詳細(xì)介紹了關(guān)于go平滑重啟庫(kù)overseer實(shí)現(xiàn)原理,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,有需要的小伙伴可以參考下
    2023-11-11
  • golang?channel管道使用示例解析

    golang?channel管道使用示例解析

    這篇文章主要介紹了golang?channel管道使用示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Golang+Vue輕松構(gòu)建Web應(yīng)用的方法步驟

    Golang+Vue輕松構(gòu)建Web應(yīng)用的方法步驟

    本文主要介紹了Golang+Vue輕松構(gòu)建Web應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • go語(yǔ)言實(shí)現(xiàn)兩個(gè)協(xié)程交替打印

    go語(yǔ)言實(shí)現(xiàn)兩個(gè)協(xié)程交替打印

    這篇文章主要介紹了go語(yǔ)言實(shí)現(xiàn)兩個(gè)協(xié)程交替打印,文章主要分享了兩種方法使用兩個(gè)channel和使用一個(gè)channel,內(nèi)容介紹詳細(xì)具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • Go高級(jí)特性之并發(fā)處理http詳解

    Go高級(jí)特性之并發(fā)處理http詳解

    Golang?作為一種高效的編程語(yǔ)言,提供了多種方法來實(shí)現(xiàn)并發(fā)發(fā)送?HTTP?請(qǐng)求,本文將深入探討?Golang?中并發(fā)發(fā)送?HTTP?請(qǐng)求的最佳技術(shù)和實(shí)踐,希望對(duì)大家有所幫助
    2024-02-02

最新評(píng)論

兰西县| 宁都县| 宿松县| 哈巴河县| 休宁县| 长寿区| 化隆| 伊金霍洛旗| 福贡县| 沾化县| 望城县| 成都市| 桂平市| 湖南省| 荣成市| 安远县| 永年县| 琼结县| 成都市| 嘉鱼县| 潢川县| 泰宁县| 新竹县| 宜宾县| 全州县| 孟州市| 西丰县| 斗六市| 神农架林区| 吉安市| 延边| 惠州市| 弋阳县| 新营市| 高青县| 兴海县| 肇庆市| 庆元县| 广饶县| 德令哈市| 永嘉县|