[英]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.