我有一个功能func more(... t)
。我想知道是否可以使用切片来填充参数列表...
。
我正在尝试解决以下程序。基本上是模仿一个普通的外壳,该外壳以字符串形式接收命令。
命令功能需要一个参数“列表”,我看不到如何将字符串转换为这样的列表
import "os/exec"
import "strings"
func main(){
plainCommand := "echo hello world"
sliceA := strings.Fields(plainCommand)
cmd := exec.Command(sliceA)
}
Go编程语言规范
将参数传递给…参数
如果f是最终参数类型为… T的可变参数,则该函数中的参数等效于[] T类型的参数。在f的每次调用中,传递给最终参数的参数是[]
T类型的新切片,其连续元素是实际参数,所有这些实际参数都必须分配给T类型。因此,切片的长度为参数绑定到最终参数,并且对于每个调用站点可能有所不同。
包执行
func命令
func Command(name string, arg ...string) *Cmd
命令返回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
问题内容: 我有以下代码: 但是我想将一个指向字节切片的指针传递给另一个函数,并在那里切片,所以类似: 它给我一个错误,我不能在函数参数中使用type 作为类型,并且不能对type进行切片。怎么了?默认情况下切片不是通过引用传递的吗?我试图在没有指针的情况下执行此操作,但是它不起作用- 正在复制数组。我怎样才能做到这一点? 问题答案: 该错误来自您尚未发布的拼写错误(您尝试传递一个切片而不是指向的
问题内容: 我正在使用的软件包gosqlite的方法带有 可变 参数,其类型为 空接口 。 如果显式传递各个参数,我可以称呼它为好: 但是,由于可变参数与我的SQL语句的运算符内的占位符相对应,因此这些占位符的数目在编译时未知,但会在运行时根据用户的操作动态变化。例如,如果用户输入四个值,我最终会得到类似于以下的SQL: 所以自然地我想用一片字符串来调用该方法: 这不会编译。我可以通过创建一个空的
我有一个简单的方法,我想把片段名作为参数传递。我几乎没有像这样的碎片 1) AddNewDatesFragment 2) AskFragment 3)免责声明片段 我有下面的代码可以正常工作 我想在方法中编写一些代码,在这里我可以调用这样的方法 等 我曾经尝试过这样的代码,但在if条件下不工作会导致编译时错误。 我对实施这种方法感到好奇。谢谢
组件具有变量作为观察者: 当
我想通过包装C 11中的std::thread类来使用我自己的Thread实现,这样我就可以像我想要的那样处理异常。 这是我的包装类: 如果没有争论,它的效果相当不错: …但如果我尝试传递可变参数: ...我在编译时收到一个错误: buildroot-2014.02/output/host/usr/i586-buildroot-linux-uclibc/include/c /4.8.2/funct
问题内容: 在Java中,我可以做类似的事情 然后稍后在方法中“运行”代码。处理(匿名内部类)很痛苦,但是可以做到。 Go是否有可以促进函数/回调作为参数传递的内容? 问题答案: 是的,请考虑以下示例: 播放:http://play.golang.org/p/XNMtrDUDS0 导览:https : //tour.golang.org/moretypes/25(函数闭包)