我正在编写一些代码,并且我需要它来捕获参数并将它们传递给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 {}
有“解决方案”解决此问题吗?
go run test.go some test flags
),当更改flags.Args()...
为just时,它似乎可以工作flag.Args()
(输出为[some test flags]
,后跟换行符;也似乎与注册实际标志一起工作)。不会假装理解为什么,而斯蒂芬的答案