登录
首页 >  Golang >  Go问答

使用 Switch 语句向 API 请求添加特定变量

来源:stackoverflow

时间:2024-03-04 20:18:28 214浏览 收藏

本篇文章给大家分享《使用 Switch 语句向 API 请求添加特定变量》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

我正在尝试使用 switch 语句,其中将要求用户输入内容,并且他们的选择将被扫描到可以在 switch 语句中找到的特定变量中。将选择保存到变量 (p, h, i) 后,该变量将作为参数添加,如 params.add("filter", fmt.sprintf("hostname:%s", h)) 中所示。将其中一个变量添加到 add 方法后,它们将通过 api 请求传递。我的思维过程是否偏离了?

func FindHost() (*HostSearch, error) {
    fmt.Println("Select from the options below:")
    var choice int
    fmt.Println("1. Platform")
    fmt.Println("2. Hostname")
    fmt.Println("3. IP")
    fmt.Scanln(&choice)
    switch choice {
    case 1:
        var p string
        fmt.Println("Enter Platform name: ex Windows")
        fmt.Scanln(p)

    case 2:
        var h string
        fmt.Println("Enter hostname: ")
        fmt.Scanln(h)

    case 3:
        var i string
        fmt.Println("Enter IP")
        fmt.Scanln(i)

    }
    
    params := url.Values{}
    params.Add("filter", fmt.Sprintf("hostname: '%s'", h))
    params.Add("filter", fmt.Sprintf("platform_name: '%s'", p))
    params.Add("filter", fmt.Sprintf("IP: %s", i))

    req, err := http.NewRequest("GET", ++params.Encode(), nil)
    req.Header.Set("Accept", "application/json")
}

解决方案


如果这只是命令行程序,您应该使用命令行参数,并且无论传递什么值(一个/一对主机/ip/平台),都在函数中使用它。您可以使用 golang flag

如果您想坚持原来的程序,您需要执行以下操作。

func FindHost() {
    fmt.Println("Select from the options below:")
    var choice int
    var param string
    params := url.Values{}
    fmt.Println("1. Platform")
    fmt.Println("2. Hostname")
    fmt.Println("3. IP")
    fmt.Scanf("%d", &choice)
    switch choice {
    case 1:
        fmt.Println("Enter Platform name: ex Windows")
        fmt.Scanf("%s", ¶m)
        params.Add("filter", fmt.Sprintf("hostname: '%s'", param))

    case 2:
        fmt.Println("Enter hostname: ")
        fmt.Scanf("%s", ¶m)
        params.Add("filter", fmt.Sprintf("platform_name: '%s'", param))

    case 3:
        fmt.Println("Enter IP")
        fmt.Scanf("%s", ¶m)
        params.Add("filter", fmt.Sprintf("IP: %s", param))

    }
    fmt.Println(fmt.Sprintf("%+v", params))
}

更新

根据最近的评论更新程序。

好了,本文到此结束,带大家了解了《使用 Switch 语句向 API 请求添加特定变量》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>