我有一个功能func more(... t)。我想知道是否可以使用切片来填充参数列表...。
func more(... t)
...
我正在尝试解决以下程序。基本上是模仿一个普通的shell,它以字符串的形式接收命令。 命令函数需要一个参数“列表”,我不知道如何将字符串转换为这样的列表
import "os/exec" import "strings" func main(){ plainCommand := "echo hello world" sliceA := strings.Fields(plainCommand) cmd := exec.Command(sliceA) }
如果 f 是具有最终参数类型 …T 的可变参数,则在函数内该参数等效于类型 []T 的参数。在每次调用 f 时,传递给最后一个参数的参数是一个 []T 类型的新切片,其连续元素是实际参数,所有参数都必须分配给类型 T。因此切片的长度是绑定到最后一个参数的参数,每个调用站点可能会有所不同。
包执行 func 命令 golang func Command(name string, arg ...string) *Cmd Command 返回 Cmd 结构以使用给定的参数执行命名程序。 返回的 Cmd 的 Args 字段由命令名称后跟 arg 的元素构成,因此 arg 不应包含命令名称本身。例如,Command(“echo”, “hello”)
包执行
func 命令
golang func Command(name string, arg ...string) *Cmd
Command 返回 Cmd 结构以使用给定的参数执行命名程序。
返回的 Cmd 的 Args 字段由命令名称后跟 arg 的元素构成,因此 arg 不应包含命令名称本身。例如,Command(“echo”, “hello”)
例如,
package main import ( "fmt" "os/exec" ) func main() { name := "echo" args := []string{"hello", "world"} cmd := exec.Command(name, args...) out, err := cmd.Output() if err != nil { fmt.Println(err) } fmt.Println(string(out)) }
输出:
hello world