如何解决如何获取数组元素的地址,该数组元素是结构的元素,该结构是指针
我有一个递归函数,该函数对指向树状结构的指针进行操作。
该结构是一个目录,而元素之一是一个子目录数组(即directory [])。当我遍历该数组时,我想获取一个元素并将其地址(&)传递给该函数。我该怎么办?
我有一个*目录,我想要(* directory).subdirectories [7]的地址。显然&directory.subdirectories [7]不是地址。正确的语法是什么?
type directory struct {
name string
subdirectories []directory
}
func compareDirectories(asIs *directory,toBe *directory) {
for k,inputDir := range toBe.subdirectories {
for l,outputDir := range asIs.subdirectories {
if inputDir.name == outputDir.name {
compareDirectories(&(asIs.subdirectories[l]),&(toBe.subdirectories[k]))
}
}
}
}
compareDirectories的正确语法是什么?
解决方法
Public Function DownloadAsyncFile(FileName As String,FileType As String)
Try
Dim Address As String
AddHandler fileReader.DownloadFileCompleted,Sub(sender,e) download_complete(FileName)
AddHandler fileReader.DownloadProgressChanged,AddressOf Download_ProgressChanged
fileReader.DownloadFileAsync(New Uri(Address),AWSGlobals.ContentPath + FileName)
Catch ex As Exception
MsgBox( ex.Message)
End Try
End If
End Function
Private Sub download_complete(filename As String)
RaiseEvent DownloadDone(filename)
End Sub
是正确的语法,但不要将类型名与变量名混淆。 &directory.subdirectories[7]
是类型名称,您需要类型为directory
的变量,并使用该变量的名称代替*directory
(不一定是变量,而是类型为directory
的变量)。
请参见以下示例:
*directory
哪个输出(在Go Playground上尝试):
dir := &directory{
name: "foo",subdirectories: []directory{
7: directory{name: "bar"},},}
p := &dir.subdirectories[7]
fmt.Printf("%T %+v",p,p)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。