当前位置:  开发笔记 > 编程语言 > 正文

不能在函数参数中使用true(布尔型)作为字符串类型

如何解决《不能在函数参数中使用true(布尔型)作为字符串类型》经验,为你挑选了1个好方法。

我正在尝试通过弹性搜索获取搜索结果,但出现此错误:

cannot use true (type bool) as type string in function argument

请任何人可以帮助解决该问题?我是Go编程的新手,所以希望您将来提出改进此情况的建议。

这是我的代码段

func SearchCallback(w *http.ResponseWriter, req *http.Request) {

    api.Domain = "127.0.0.1"

    // search males

    searchQuery := `{
        "query": {
            "term": {"content":"male"}
        }
    }`
    var response2 map[string]interface{}
    response2, err := core.SearchRequest(true, "people", "male", searchQuery, "")
    if err != nil {
        log.Fatalf("The search of males has failed:", err)
    }
    var values2 []interface{}
    for _, v := range response2.Hits.Hits {
        var value2 map[string]interface{}
        err := json.Unmarshal(v.Source, &value2)
        if err != nil {
            log.Fatalf("Failed to unmarshal, line 65", err)
        }
        values2 = append(values2, value2)
    }
    fmt.Println(values2)

    jsonV2, err := json.Marshal(values2)
    if err != nil {
        log.Fatalf("Failed marshalling: line 71", err)
    }
    fmt.Println(string(jsonV2))
}

LinearZoetro.. 5

Go没有隐式类型转换。由于您是编程的新手,这意味着在不明确声明希望将其视为此类的情况下,不能将一种类型视为另一种类型。一个int不是浮点数,一个浮点数不是一个切片,而bool则不是一个字符串。不幸的是,有时您可以使用类型转换来解决此问题,对于布尔值,您不能简单地使用类型转换。即string(bool)不会编译。

有多种解决方法。一是更换truefmt.Sprintf("%t",true)。这是更一般的情况,如果true不是布尔变量,它将返回表示"true""false"依赖的字符串。它还可以很好地推广到其他类型,例如整数,fmt.Sprintf("%d",myInteger)例如,将an转换int为a string

但是...在这种情况下,由于该值始终为true,因此不需要,只需将其替换true为即可"true"。该字符串"%t"返回将是字符串"true",所以没有必要去通过转换的麻烦。



1> LinearZoetro..:

Go没有隐式类型转换。由于您是编程的新手,这意味着在不明确声明希望将其视为此类的情况下,不能将一种类型视为另一种类型。一个int不是浮点数,一个浮点数不是一个切片,而bool则不是一个字符串。不幸的是,有时您可以使用类型转换来解决此问题,对于布尔值,您不能简单地使用类型转换。即string(bool)不会编译。

有多种解决方法。一是更换truefmt.Sprintf("%t",true)。这是更一般的情况,如果true不是布尔变量,它将返回表示"true""false"依赖的字符串。它还可以很好地推广到其他类型,例如整数,fmt.Sprintf("%d",myInteger)例如,将an转换int为a string

但是...在这种情况下,由于该值始终为true,因此不需要,只需将其替换true为即可"true"。该字符串"%t"返回将是字符串"true",所以没有必要去通过转换的麻烦。

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有