Обработка аргументов командной строки в Go

Beginner

This tutorial is from open-source community. Access the source code

Введение

Цель этого лабораторного занятия - практиковаться в работе с аргументами командной строки в Golang.

Аргументы командной строки

Программа в настоящее время выводит сырые аргументы командной строки, переданные ей. Однако, ее необходимо модифицировать, чтобы выводить конкретные аргументы в зависимости от их индекса.

  • Основные знания Golang
  • Знание аргументов командной строки
## Для эксперимента с аргументами командной строки лучше
## сначала собрать бинарник с помощью `go build`.
$ go build command-line-arguments.go
$./command-line-arguments a b c d
[./command-line-arguments a b c d]
[a b c d]
c

## Далее мы рассмотрим более продвинутую обработку
## командной строки с использованием флагов.

Ниже представлен полный код:

// [_Аргументы командной строки_](https://en.wikipedia.org/wiki/Command-line_interface#Arguments)
// - это распространенный способ параметризации выполнения программ.
// Например, `go run hello.go` использует аргументы `run` и
// `hello.go` для программы `go`.

package main

import (
    "fmt"
    "os"
)

func main() {

    // `os.Args` позволяет получить доступ к сырым аргументам
    // командной строки. Обратите внимание, что первое значение
    // в этом срезе - это путь к программе, а `os.Args[1:]`
    // содержит аргументы программы.
    argsWithProg := os.Args
    argsWithoutProg := os.Args[1:]

    // Вы можете получить отдельные аргументы с помощью
    // обычного индексирования.
    arg := os.Args[3]

    fmt.Println(argsWithProg)
    fmt.Println(argsWithoutProg)
    fmt.Println(arg)
}

Резюме

В этом лабораторном занятии мы узнали, как получать доступ к конкретным аргументам командной строки и выводить их в Golang. Используя переменную os.Args и индексируя ее, мы можем легко получить доступ к аргументам, переданным программе.