MST

星途 面试题库

面试题:Go flag包复杂参数组合验证

在Go语言项目里,使用flag包定义了三个参数:一个字符串参数、一个整数参数和一个布尔参数。要求当布尔参数为true时,字符串参数不能为空且整数参数大于0。请实现这种复杂参数组合的验证逻辑,并给出完整代码示例。
33.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "flag"
    "fmt"
    "os"
)

func main() {
    var strParam string
    var intParam int
    var boolParam bool

    flag.StringVar(&strParam, "str", "", "a string parameter")
    flag.IntVar(&intParam, "int", 0, "an integer parameter")
    flag.BoolVar(&boolParam, "bool", false, "a boolean parameter")

    flag.Parse()

    if boolParam {
        if strParam == "" {
            fmt.Println("When bool parameter is true, string parameter cannot be empty")
            os.Exit(1)
        }
        if intParam <= 0 {
            fmt.Println("When bool parameter is true, integer parameter must be greater than 0")
            os.Exit(1)
        }
    }

    fmt.Printf("strParam: %s\n", strParam)
    fmt.Printf("intParam: %d\n", intParam)
    fmt.Printf("boolParam: %v\n", boolParam)
}