猿问

无法将[]字符串转换为[]接口{}

我正在编写一些代码,并且我需要它来捕获参数并将其传递fmt.Println

(我希望它的默认行为是,编写用空格分隔并后跟换行符的参数)。但是它需要[]interface {}而flag.Args()返回[]string。

这是代码示例:


package main


import (

    "fmt"

    "flag"

)


func main() {

    flag.Parse()

    fmt.Println(flag.Args()...)

}

这将返回以下错误:


./example.go:10: cannot use args (type []string) as type []interface {} in function argument

这是一个错误吗?不应该fmt.Println接受任何数组吗?顺便说一句,我也试图做到这一点:


var args = []interface{}(flag.Args())

但出现以下错误:


cannot convert flag.Args() (type []string) to type []interface {}

有“解决方法”解决此问题吗?


慕森王
浏览 187回答 3
3回答

千巷猫影

如果仅是要打印的字符串片段,则可以通过加入以下命令来避免转换并获得完全相同的输出:package mainimport (    "fmt"    "flag"    "strings")func main() {    flag.Parse()    s := strings.Join(flag.Args(), " ")    fmt.Println(s)}
随时随地看视频慕课网APP

相关分类

Go
我要回答