第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

解析具有多個(gè)值的 go 標(biāo)志

解析具有多個(gè)值的 go 標(biāo)志

Go
慕桂英3389331 2022-06-13 16:40:16
我有以下代碼,我需要獲取val1andval2和arg1and之類的值arg2并打印它,我嘗試了很多方法,這可能嗎?package mainimport (    "flag"    "fmt"    "strings")func main() {    args := strings.Fields("-loc .env -names val1 val2 -tags arg1 arg2")    FlagSet := flag.NewFlagSet("FlagSet", flag.ContinueOnError)    loc := FlagSet.String("loc", "", "")    name := FlagSet.String("names", "", "")    tags := FlagSet.String("tags", "", "")        FlagSet.Parse(args)    fmt.Printf("location: %s \n", *loc)    fmt.Printf("name: %s \n", *name)    fmt.Printf("tags: %s \n", *tags)}https://play.golang.org/p/8aN5-0EZ2OT
查看完整描述

2 回答

?
至尊寶的傳說

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

您想要的不是 stdlib 標(biāo)志包如何解析標(biāo)志:https ://golang.org/pkg/flag/#hdr-Command_line_flag_syntax 。一個(gè)標(biāo)志可以有一個(gè)參數(shù)。

您能做的最好的事情是-loc .env -names "val1 val2" -tags "arg1 arg2"-loc .env -names val1,val2 -tags arg1,arg2。在第一種情況下,雙引號(hào)將多個(gè)單詞轉(zhuǎn)換為單個(gè)命令行參數(shù),而在第二種情況下,使用逗號(hào)而不是空格來組合參數(shù)。在這兩種情況下,您都必須將結(jié)果解析為單獨(dú)的參數(shù),也許使用strings.Split.

請注意,您使用strings.Fields將測試參數(shù)分解為空格分隔的字段,但這會(huì)忽略引號(hào),這與命令行的行為不同。


查看完整回答
反對(duì) 回復(fù) 2022-06-13
?
胡說叔叔

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊

由于 shell 使用 space(" ") 作為分隔符,所以使用空格作為分隔符并不是一個(gè)好主意。使用逗號(hào)“,”作為分隔符可以優(yōu)雅地解決這個(gè)問題。


https://play.golang.org/p/xF2N_qnRlwe


package main


import (

    "flag"

    "fmt"

    "strings"

)


func main() {

    //NOT GOOD - multiple values (see value1 value2)

    args := strings.Fields(`-loc .env -names val1,val2 -tags arg1,arg2`)


    FlagSet := flag.NewFlagSet("FlagSet", flag.ContinueOnError)

    loc := FlagSet.String("loc", "", "")

    names := FlagSet.String("names", "", "")

    tags := FlagSet.String("tags", "", "")


    FlagSet.Parse(args)


    fmt.Printf("location: %s \n", *loc)

    fmt.Printf("names: %s \n", strings.Split(*names, ","))

    fmt.Printf("tags: %s \n", strings.Split(*tags, ","))

}


查看完整回答
反對(duì) 回復(fù) 2022-06-13
  • 2 回答
  • 0 關(guān)注
  • 147 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)