美文网首页
自关联数据demo

自关联数据demo

作者: funcx | 来源:发表于2019-08-14 09:34 被阅读0次
package main

import (
    "log"
)

type A struct {
    Id   int
    Name string
    AId  int
    A    *A
}

func main() {
    a := GetById(1, GetByIdFunc())
    log.Println(a)
}

func GetById(id int, iniAFunc func(a *A)) *A {
    log.Println("id:", id)
    a := new(A)
    switch id {
    case 1:
        a.Id = 1
        a.Name = "a1"
        a.AId = 2
    case 2:
        a.Id = 2
        a.Name = "a2"
        a.AId = 3
    case 3:
        a.Id = 3
        a.Name = "a3"
        a.AId = 0
    }
    iniAFunc(a)
    return a
}

func GetByIdFunc() func(a *A) {
    return func(a *A) {
        switch a.AId {
        case 0:
            return
        default:
            a.A = GetById(a.AId, GetByIdFunc())
        }
    }
}

相关文章

网友评论

      本文标题:自关联数据demo

      本文链接:https://www.haomeiwen.com/subject/wrmwjctx.html