«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу проанализировать несколько значений в списке, используя пользовательские флаги в Golang?

Как я могу проанализировать несколько значений в списке, используя пользовательские флаги в Golang?

Опубликовано 22 декабря 2024 г.
Просматривать:182

How can I parse multiple values into a list using custom flags in Golang?

Пользовательский флаг для списков в Golang

Пакет флагов Golang позволяет легко анализировать аргументы, но обычно поддерживает базовые типы, такие как строка, целое число, или логическое значение. Это может показаться ограничением при работе со списками значений.

Golang позволяет создавать собственные флаги путем реализации интерфейса flag.Value. Этот интерфейс требует реализации двух методов: String() и Set(). Определив пользовательский флаг для списков, вы можете включить анализ нескольких значений, передаваемых через флаги командной строки.

Определение пользовательского флага списка

Рассмотрим следующий пример :

package main

import "flag"
import "fmt"

type arrayFlags []string

// String() implements the flag.Value interface
func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

// Set() implements the flag.Value interface
func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}

var myFlags arrayFlags

func main() {
    flag.Var(&myFlags, "list1", "Some description for this param.")
    flag.Parse()
    fmt.Println(myFlags)
}

Определяет пользовательский тип флага, называемый arrayFlags, который принимает несколько значений. Флаг привязан к имени флага «list1» и может быть проанализирован с помощью flag.Parse().

Использование

Чтобы передать несколько значений с помощью этого пользовательского флага, вы можете запустить программу следующим образом:

go run your_file.go --list1 value1 --list1 value2 --list1 value3

Это заполнит переменную myFlags тремя предоставленными значениями: ["value1", "value2", "value3"]. Затем вы можете получить доступ к этим значениям в своей программе.

Игровая площадка

Для живого примера вы можете посетить следующую игровую площадку: [ссылка на игровую площадку]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3