Googleドライブに引数を提供しようとしていますGoLang API(質問に答えるためにAPIについて何も知っている必要はないかもしれませんが)私はGoを初めて使用するので、ビルドエラーメッセージで混乱します。
オプションの引数の1つは、アップロードされたファイルが格納される親フォルダー。親フォルダーは、ParentRefernce構造体で参照されます。次のGolangコードのスニペットを参照してください。
parent := drive.ParentReference{Id: parent_folder}
parents := [...]*drive.ParentReference{&parent}
driveFile, err := service.Files.Insert(
&drive.File{Title: "Test", Parents: parents}).Media(goFile).Do()
私が取得しているビルドエラーは、上記のスニペットの最終行に関するものです。 フィールド値のタイプ[] * drive.ParentReferenceとして親(タイプ[1] * drive.ParentReference)を使用できません
私の混乱は、[1] * Typeおよび[] * Type。前者は特定の長さの配列で、後者は長さが指定されていない配列のようです。ここでの説明は役に立ちます。
回答:
回答№1は4お気づきのように、スライスと配列はGoでは2つの異なるタイプであり、動作が異なります。したがって、[] Typeと[1] Typeは2つの異なるものであり、交換して使用することはできません。素晴らしいをチェック スライスの説明 それらの詳細については。
ただし、修正は必要以上に複雑です。そのまま使えるはず
parents := []*drive.ParentReference{&parent}
あなたが現在いる場所
parents := [...]*drive.ParentReference{&parent}
変数をスライスとしてインスタンス化する場合、後でスライスする必要はありません。
回答№2の場合は0
私の問題は明らかに何を検索すべきかわからなかった-[] * Typeは非常に良いGoogleクエリではない。
[1] * Typeは配列ですが、[] * Typeはスライスです。したがって、解決策は単純に親をスライスすることです。
Parents: parents[:]
トリックを行います。