>백엔드 개발 >Golang >Golang에서 사용자 정의 플래그를 사용하여 여러 값을 목록으로 구문 분석하려면 어떻게 해야 합니까?

Golang에서 사용자 정의 플래그를 사용하여 여러 값을 목록으로 구문 분석하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-16 07:08:03338검색

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 변수가 제공된 세 가지 값으로 채워집니다. ["값1", "값2", "값3"]. 그런 다음 프로그램 내에서 이러한 값에 액세스할 수 있습니다.

Playground

실시간 예를 보려면 다음 Playground를 방문하세요. [playground link]

위 내용은 Golang에서 사용자 정의 플래그를 사용하여 여러 값을 목록으로 구문 분석하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.