gpt4 book ai didi

go - 无法将 nil 转换为类型字符串

转载 作者:IT王子 更新时间:2023-10-29 02:31:08 24 4
gpt4 key购买 nike

我在中间件函数中有这段代码:

params := r.URL.Query()

tok := params["x-huru-api-token"][0];

if tok == nil {
tok := r.Header.Get("x-huru-api-token")
}

但是我得到这个错误:

enter image description here

有人知道那是什么吗?

最佳答案

nil 不是 string 的有效值。如果您想回退到缺少值和空值的标题,请使用以下代码:

params := r.URL.Query()
tok := params.Get("x-huru-api-token")
if tok == "" {
tok = r.Header.Get("x-huru-api-token")
}

如果您只想在缺少查询参数时回退到 header ,请使用以下内容:

params := r.URL.Query()
var tok string
if values, ok := params["x-huru-api-token"]; ok && len(values) > 0 {
tok = values[0] // note that tok can be the empty string ""
} else {
tok = r.Header.Get("x-huru-api-token")
}

请注意此答案中的代码与问题中的一个区别。这个答案使用赋值在 if 语句中设置 tok 。问题中的代码使用了简短的变量声明。短变量声明将无法编译,因为未使用 if 语句中新声明的变量。

关于go - 无法将 nil 转换为类型字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53859961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com