2017-02-09 11 views
-1

goと知り合おうとしています。私はこのような何かをしたい:私は次のエラーを取得していますGoエラー:引数に型文字列として引数(型[]文字列)を使用できません。

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

metadata.New' 'のhttps://github.com/grpc/grpc-go/blob/master/Documentation/grpc-metadata.md結果によると、' metadata.MD'です:場合は、と文字列の_slices_に文字列をマップするので、 'headers [" auth "]'の結果は 'string'ではなく' [] string'(slice)であり、Addの引数として使うことはできません – myaut

答えて

3

トークンは[]stringであり、追加の第2引数はstringです。あなたは、スライスの最初の要素をしたいと仮定すると、スライスは、少なくとも一つの要素を持っていることが保証され、これを使用します。あなたは、スライス内の少なくとも1つの要素があることを知っていない場合は、保護

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

if len(token) > 0 { 
    data.Add("cookie", token[0]) 
} else { 
    // handle missing value 
} 
関連する問題