"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso analisar vários valores em uma lista usando sinalizadores personalizados em Golang?

Como posso analisar vários valores em uma lista usando sinalizadores personalizados em Golang?

Publicado em 2024-12-22
Navegar:330

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

Sinalizador personalizado para listas em Golang

O pacote de sinalizadores de Golang permite fácil análise de argumentos, mas normalmente suporta tipos básicos como string, inteiro, ou booleano. Isso pode parecer limitante ao trabalhar com listas de valores.

Golang permite a criação de sinalizadores personalizados implementando a interface flag.Value. Esta interface requer a implementação de dois métodos: String() e Set(). Ao definir um sinalizador personalizado para listas, você pode ativar a análise de vários valores passados ​​por sinalizadores de linha de comando.

Definindo um sinalizador de lista personalizado

Considere o exemplo a seguir :

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)
}

Isso define um tipo de sinalizador personalizado chamado arrayFlags que aceita vários valores. O sinalizador está vinculado ao nome do sinalizador "list1" e pode ser analisado usando flag.Parse().

Usage

Para passar vários valores usando este sinalizador personalizado, você pode executar o programa da seguinte maneira:

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

Isso preencherá o Variável myFlags com os três valores fornecidos: ["valor1", "valor2", "valor3"]. Você pode então acessar esses valores em seu programa.

Playground

Para obter um exemplo ao vivo, você pode visitar o seguinte playground: [link do playground]

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3