2017-02-09 69 views
-1

試圖熟悉去。我想要這樣做:出錯:無法在參數中使用參數(類型[]字符串)作爲字符串

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

    data.Add("cookie", token) 
} 

我收到以下錯誤:cannot use token (type []string) as type string in argument to data.Add。這個錯誤是否可以對元數據(地圖)做任何事情?

+1

據'https://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md結果metadata.New'是'metadata.MD'它將字符串映射到_slices_字符串,因此'headers [「auth」]的結果不是字符串,而是字符串[slice],不能用作Add的參數 – myaut

回答

3

令牌是[]string,Add的第二個參數是string。假設你想切片的第一要素和切片是保證至少有一個元素,使用:

data.Add("cookie", token[0]) 

如果你不知道,有切片至少一個元素的做,那麼保護用,如果:

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