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 중국어 웹사이트의 기타 관련 기사를 참조하세요!