Специфікація мови програмування Go
Передача аргументів у ... параметри
Якщо f є варіатичним із кінцевим типом параметра ... T, то в межах функції аргумент еквівалентний параметру типу [] T. При кожному виклику f аргументом, переданим кінцевому параметру, є новий зріз типу [] T, послідовними елементами якого є фактичні аргументи, які всі повинні бути присвоєні типу T. Довжина зрізу, отже, є числом аргументи, прив'язані до остаточного параметра, і можуть відрізнятися для кожного сайту виклику.
Пакунок exec
func Command
func Command(name string, arg ...string) *Cmd
Команда повертає структуру Cmd для виконання названої програми з заданими аргументами.
Поле Arg, що повертається, складається з імені команди, за якою йдуть елементи 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