go分类递归

本文探讨了在Go语言中实现分类递归的挑战。由于Go的切片特性和PHP数组的不同,作者在尝试编写递归函数时遇到了困难。虽然没有提供完整的解决方案,但作者鼓励对Go函数运行机制和切片实现原理感兴趣的读者自行研究。
摘要由CSDN通过智能技术生成

怎么说呢,自己也试着百度了。但是关于go的示例代码真的很少。想写一个递归实现分类递归的,但是试了感觉不行,主要是因为go的切片不像php数组那样现在写下来方便自己后期用到,还有留给有需要的人

//分类
type Cate struct {
   Id int
   Name string
   Weight int
   Img string
   IsNav int
   ParentId int
}

//对接前端请求解析
type CateDto struct {
   Cate
   ParentIds []int
}

//前端需要下拉选项
type CateOption struct {
   Value int `json:"value"`
   Label string `json:"label"`
   Children []CateOption `json:"children"`
}
func (service CateService) AllCate() []models.CateOption {
//从数据库获取所有分类
   goodsCate := service.Cate.AllCate()
   var options []models.CateOption
//这里开始递归
   o := MakeCateOption(goodsCate, 0, options)
   return o
}
func MakeCateOption(goodsCate []models.Cate, pid int, cp []models.CateOption) []models.CateOption {
   var ops []models.CateOption
   for _, v := range goodsCate {
      if v.ParentId == pid {
         var option models.CateOption
         opti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值