>백엔드 개발 >Golang >두 개 이상의 명령줄 플래그가 동일한 동작을 제어하도록 하려면 어떻게 해야 합니까?

두 개 이상의 명령줄 플래그가 동일한 동작을 제어하도록 하려면 어떻게 해야 합니까?

WBOY
WBOY앞으로
2024-02-06 10:06:031291검색

두 개 이상의 명령줄 플래그가 동일한 동작을 제어하도록 하려면 어떻게 해야 합니까?

질문 내용

가서 github.com/pborman/getopt包来执行类似getopt명령줄 구문 분석을 사용하는 방법을 알고 있습니다.

그러나 이 패키지는 각 명령줄 옵션에 대해 하나의 문자열 버전과 하나의 룬 버전만 지원하는 것 같습니다. 때로는 옵션을 지정하는 데 두 가지 이상의 방법이 필요합니다. 예를 들어 prog 라는 가상 프로그램의 경우 다음 코드가 모두 정확히 동일한 기능을 수행하고 싶습니다.

으아악

다음을 수행하고 각 변수의 값을 테스트할 수 있다는 것을 알고 있습니다 optrecurseoptrecursive...

으아악

그러나 이상적으로는 이러한 네 가지 가능성 중 하나에 대한 값을 제공하는 단일 호출을 만들고 싶습니다.

나는 주어진 명령줄 옵션에 대해 두 가지 이상의 가능성이 있는 Ruby의 optionparser 패키지와 유사한 것을 원했습니다. 다음은 루비 예시입니다...

으아악

저는 비교적 새로운 사람이고 이 질문에 대한 답을 찾는 동안 뭔가를 간과하고 있을 수도 있습니다.


정답


제 생각에는 주어진 명령줄 옵션을 지정하는 두 가지 이상의 방법을 제공하는 데 "이상한" 것은 없습니다.

저는 원래 이 "답변"에서 github.com/clagraff/argparse 包不再受支持。然而,我发现了一个更现代且仍然受支持的包,我可以使用它以类似于 ruby 和 python 等其他语言的参数解析包中提供的方式提供确切的功能:github.com/tcler/cmdline -go/cmdline을 언급했습니다.

여기 Go에서 어떻게 작동하는지 보여주는 샘플 프로그램이 있습니다...

으아악

다음 네 가지 방법으로 프로그램을 실행할 수 있으며 각 경우에 동일하게 작동합니다...

으아악

네 가지 경우 모두 항상 다음을 출력합니다.

으아악

옵션 없이 실행하면(, 그냥 go run prog.go) 다음이 출력됩니다.

으아악

-x와 같은 다른 명령줄 인수를 사용하여 실행하면 다음과 같이 실패합니다.

으아악

이제 모든 명령줄 옵션을 두 가지 이상의 방법으로 지정할 수 있는 go 프로그램을 작성할 수 있습니다.

위 내용은 두 개 이상의 명령줄 플래그가 동일한 동작을 제어하도록 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제