簡體   English   中英

如何在Go中拆分字符串並將其用作函數參數?

[英]How do I split a string and use it as function arguments in Go?

我有一個用空格分隔的字符串,在此示例中,它是一個命令: ls -al

Go有一個exec.Command方法,需要將該命令作為多個參數接受,我這樣稱呼它: exec.Command("ls", "-al")

有沒有辦法采用任意字符串,將其用空格分開,並將其所有值作為參數傳遞給方法?

您可以使用foo...將任何[]T傳遞為...T類型的參數,其中foo是[]T類型: spec

exec.Command類型:

func Command(name string, arg ...string) *Cmd

在這種情況下,您將必須直接傳遞第一個參數(名稱),然后可以使用...擴展其余參數:

args := strings.Fields(mystr) //or any similar split function
exec.Command(args[0], args[1:]...)

我可以回答您問題的第一部分-參見strings.Fields

是的。 一個例子:

func main() {
    arguments := "arg1 arg2 arg3"

    split := strings.Split(arguments, " ")

    print(split...)
}

func print(args...string) {
    fmt.Println(args)
}

我最近發現了一個很好的程序包,它可以像shell一樣處理字符串拆分,包括處理引號等: https : //github.com/kballard/go-shellquote

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM