golang吧 关注:6,533贴子:14,807
  • 7回复贴,共1

go语言写了一个嵌套数组 构造出一个添加结构体的函数

只看楼主收藏回复

package main
import ("fmt")
type dog struct {name stringage int*cat}type cat struct {id int}
func ll(name string, age int, id int) *dog {oo(id)name = nameage = agereturn &dog{name: name,age: age,}}func oo(id int) *cat {return &cat{id: id,}}func main() {s9 := ll("lal", 90, 80)fmt.Println(s9)fmt.Println(s9.name, s9.age, s9.id)}


IP属地:陕西来自Android客户端1楼2023-11-28 15:02回复
    &{lal 90 <nil>} 这是程序运行的结果 我想知道为什么 nil 没有变成80


    IP属地:陕西来自Android客户端2楼2023-11-28 15:03
    回复
      2025-12-25 10:38:25
      广告
      不感兴趣
      开通SVIP免广告
      给你一个永久解决问题的方法,你用vscode的断点调试,这个网上自己查怎么实现。然后一行一行调,哪一行数据不对了就是上一步有问题。
      你这个我猜测是你return的dog结构体里没有cat,它默认为nil。你需要将oo(id)赋值一个变量,这个变量加入&dog。


      IP属地:广东来自Android客户端3楼2023-11-28 17:19
      收起回复
        像楼上说的那样,dog的cat字段都不赋值,那不就是nil吗?


        IP属地:广东来自Android客户端4楼2023-11-28 18:46
        收起回复
          cat都没赋值


          IP属地:广东来自Android客户端5楼2023-11-28 19:08
          收起回复