go 递归

指针的指针就是实际的值
形参指针传递使用值的地址传递

代码实现

func main() {
    var man []*Man //声明指针切片
    RecursionMan(&man) //地址传递
    for key, item := range man { //打印数据
        fmt.Printf("%d号男人,年龄:%d, 身高:%d\n", key+1, item.Age, item.Height)
    }
}
//定义结构体
type Man struct {
    Age int
    Height int
}
//定义递归次数
var count = 0
//实现递归
func RecursionMan(man *[]*Man) {
    count ++
    *man = append(*man, &Man{ //指针的指针就是实际的值
        Age: 20 + count,
        Height:170 + count,
    })
    if count < 10 {
        RecursionMan(man)
        return
    }
    return
}

结果打印

go 递归_第1张图片
图片.png

你可能感兴趣的:(go 递归)