【发布时间】:2012-10-11 00:25:32
【问题描述】:
我正在编写一些代码,我需要它来捕获参数并将它们传递给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 不应该采用 any 数组吗?顺便说一句,我也尝试过这样做:
var args = []interface{}(flag.Args())
但我收到以下错误:
cannot convert flag.Args() (type []string) to type []interface {}
是否有解决此问题的“Go”方式?
【问题讨论】:
-
我在搞砸一个简单的例子 (
go run test.go some test flags),当将flags.Args()...更改为flag.Args()时它似乎有效(输出为[some test flags],后跟换行符;似乎也与注册实际标志一起工作)。不会假装理解为什么,斯蒂芬的回答无论如何都会提供更多信息:)
标签: type-conversion go