2013-10-23 1 views
2

flag 모듈을 사용하여 플래그를 구문 분석했지만 최소한 하나의 위치 인수가 있어야합니다. parser.error을 사용하여 Python에서와 같이 충분한 위치 인수가 없을 때 사용 도움말을 어떻게 표시합니까?명령 줄 구문 분석시 사용자 지정 오류가 발생합니다.

현재, 나는 수동으로 os.Exit를 호출하고, 그러나 그것은 단순한 오류 일해야하는지 정말 성가신 느낌 :

package main 

import "flag" 
import "fmt" 
import "os" 

func main() { 
    flag.Parse() 
    if flag.NArg() != 1 { 
    println("This program needs exactly one argument") 
    flag.Usage() 
    os.Exit(2) 
    } 
    fmt.Printf("You entered %d characters", len(flag.Args()[0])) 
} 

답변

2

내가 log 패키지를 사용,이 같은 일을하십시오.

package main 

import "flag" 
import "fmt" 
import "os" 
import "log" 

func main() { 
    flag.Parse() 
    if flag.NArg() != 1 { 
    log.Fatalln("This program needs exactly one argument") 
    } 
    fmt.Printf("You entered %d characters", len(flag.Args())) 
} 

log.Fatal() 및 그것의 자매 방법 (log.Fatalln(), log.Fatalf() 등) 단순히 log.Print()을 다음 os.exit(1)로를 따라 모든 헬퍼입니다. 출력하지 사용을하지 불행하게도 추가 링크 http://golang.org/pkg/log/#Fatalln

+0

, - 편집

. – phihag

관련 문제