Go error:不能在参数中使用参数(type [] string)作为类型字符串

San*_*ket 1 go grpc

试着结识去吧.我想做这样的事情:

func validation(){
    headers := metadata.New(map[string]string{"auth":"", "abc": "", "xyz" : ""})
    token := headers["auth"]

    data.Add("cookie", token)
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:cannot use token (type []string) as type string in argument to data.Add.这个错误是否与我在函数内部的元数据(map)有关?

Cer*_*món 5

令牌是一个[]string,而Add的第二个参数是a string.假设您想要切片的第一个元素并且切片保证至少有一个元素,请使用:

data.Add("cookie", token[0])
Run Code Online (Sandbox Code Playgroud)

如果您不知道切片中至少有一个元素,则使用if保护:

if len(token) > 0 {
   data.Add("cookie", token[0])
} else {
   // handle missing value
}
Run Code Online (Sandbox Code Playgroud)