2016-01-11 95 views
-1

当我试图使用如何打印os中没有括号的os.args [1:]?

fmt.Println(os.Args[1:]) 

我得到了类似结果

[Gates Bill] 

如何才能摆脱围绕参数的[]的打印命令行参数?而Go似乎吃在参数所有逗号,我怎么能得到像

Last name, First name 
Gates, Bill 
+1

'为K,V:=范围os.Args [1:]'? –

+0

@u_mulder如果我想输出'Knuth,Donald,计算机编程艺术的作者'。'Knuth,Donald'是用户输入,我不知道如何。 – Nick

+0

@Nick对每两个输入进行分离很重要吗?即你的用户是否可以用'./myapp Knuth Donald Gates Bill'调用? –

回答

7

输出你应该使用strings.Join这一点。尝试,

fmt.Printf("%s, Author of The Art of Computer Programming", strings.Join(os.Args[1:], ", ")) 

Join返回与", "每个参数之间插入的string

1

它输出方括号的原因是因为你正在向打印命令传递一个片段。

你想要做的是采取每个命令,并把它们放入一个字符串,以便根据需要打印。

firstname := os.Args[1] 
lastname := os.Args[2] 
fmt.Println(lastname + ", " + firstname) 

你也应该看看的包中被Chandru指出。在那里有很多好东西可以帮助处理字符串。

参见:https://golang.org/pkg/strings/