我正在编写一些代码,我需要它来捕获参数并传递它们fmt.Println
(我希望它的默认行为,写入由空格分隔的参数,然后是换行符).但它需要[]interface {}但flag.Args()返回一个[]string.
这是代码示例:
package main
import (
"fmt"
"flag"
)
func main() {
flag.Parse()
fmt.Println(flag.Args()...)
}
Run Code Online (Sandbox Code Playgroud)
这将返回以下错误:
./example.go:10: cannot use args (type []string) as type []interface {} in function argument
Run Code Online (Sandbox Code Playgroud)
这是一个错误吗?不应该fmt.Println采取任何阵列?顺便说一句,我也试过这样做:
var args = []interface{}(flag.Args())
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
cannot convert flag.Args() (type []string) to type []interface {}
Run Code Online (Sandbox Code Playgroud)
是否有"Go"方式解决此问题?
在脚本中,我有以下不工作的代码:
set eval(rules[formatoption])=value
Run Code Online (Sandbox Code Playgroud)
rules字典在哪里formatoption,value是一个变量.我想让Vim读取变量名称rules[formatoption]并将其设置为value.如何让Vim以这种方式设置变量?我认为应该有类似setvar(name, value)或类似的函数,将name(字符串)设置为value.这行代码将使我免于在70行脚本中编写大约30行代码.