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

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

Linda Hamilton
풀어 주다: 2024-11-16 07:08:03
원래의
397명이 탐색했습니다.

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으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿