gpt4 book ai didi

arrays - Golang 数组类型混淆

转载 作者:IT王子 更新时间:2023-10-29 01:55:52 24 4
gpt4 key购买 nike

我正在尝试为 Google Drive GoLang API 提供参数(尽管您可能不需要了解有关 API 的任何信息即可回答问题)。我是 Go 的新手,我的构建错误消息让我感到困惑。

其中一个可选参数是父文件夹数组,上传的文件应存储在其中。父文件夹使用 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()

我遇到的构建错误是针对上述代码段的最后一行:不能在字段值中使用父项(类型 [1]*drive.ParentReference)作为类型 []*drive.ParentReference

我的困惑在于 [1]*Type 和 []*Type 之间的区别。好像前者是定长数组,后者是无定长数组。此处的任何澄清都是有用的。

最佳答案

如您所述, slice 和数组在 Go 中是两种不同的类型,并且表现不同。所以 []Type 和 [1]Type 是两个不同的东西,不能互换使用。看看很棒的 explanation of slices有关它们的更多信息。

但是,您的修复比实际需要的要复杂一些。你应该能够使用


parent := []*drive.ParentReference{&parent}

你现在在哪里


parent := [...]*drive.ParentReference{&parent}

如果您将变量实例化为一个 slice ,您以后就不需要 slice 了。

关于arrays - Golang 数组类型混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20810369/

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