Golang无法覆盖指向切片的指针

Golang无法覆盖指向切片的指针

本文介绍了Golang无法覆盖指向切片的指针的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  app / domain / repositories / class_repository.go在尝试覆盖切片指针时不断收到此错误。 :24:无法区分类(类型* [] entities.Class)

我做错了什么?



这是struct:

 软件包储存库

导入(
mobifit / app / domain / entities


类型ClassRepository结构{
*存储库
}

func(c * ClassRepository)ClassesForLastNDays(days int)* [] entities.Class {
classes:= new([] entities.Class)
query:= Select(* )。
出自(班级)。
Where(VisibleAt> CURRENT_TIMESTAMP() - INTERVAL?DAY)。
OrderBy(ClassTypeId)。
Sql()
c.Repository.Select(类,查询,天)
c.populateClassRelationships(类)
返回类
}

func(c * ClassRepository)populateClassRelationships(classes * [] entities.Class){
for i:= range classes {<<<<<< <这里是问题
class:= classes [i]

// ClassType
c.Repository.GetById(class.ClassType,class.ClassTypeId)

//教师
c.Repository.GetById(class.Instructor,class.ClassType.InstructorId)

//设备
查询:=选择(E. *) )。
出自(设备E)。
加入(E.Id = CE.EquipmentId上的ClassEquipment CE)。
哪里(CE.ClassId =?)。
Sql()
c.Repository.Select(class.Equipment,query,class.Id)
}
}
pre>

以下是Class结构:

 包实体

导入(
time


类型结构{
Id int
ClassTypeId int
VideoPath字符串
VideoSize int
持续时间float64
CreatedAt time.Time
VisibleAt time.Time
NoLongerVisibleAt time.Time

//关系
ClassType ClassType
教师用户
设备[]设备
}


解决方案

您假设指向一个切片的指针会自动取消引用迭代。



情况并非如此,也没有原因是因为一个切片是ady是一种指针,呈现指向切片的指针完全没用。



来自进行更改的片段对调用者来说是可见的,类似于将
指针传递给底层数组。 slice由

08-05 05:43