240 发简信
IP属地:北京
  • map输入key,返回的是value,这个value就是纯纯的值,这个值不一定能成为左值,如果是一个指针,那么就能成为左值,因为slice里面有指针,所以改为slice可以通过编译,相同的如果map映射的直接就是个指针,那么就能直接修改了。这个问题类似,函数返回结构体,函数返回的结构体被当做值,go圣经里提到“调用函数返回的是值,并不是一个可取地址的变量”。go语言简化了各种传递问题,所有的传递和传出,都是值传递,没有引用传递,至于能不能访问,那得看这个东西内部有没有指针,能不能作为左值。(go圣经里说的,go不要考虑引用传递,还是值传递,都归结为值传递)

    golang cannot assign to XXX 问题分析

    今天在编译golang项目时,遇到了一个错误。编译器提示 cannot assign to m[1][1] 原项目太大了,不贴了代码大体是这样的 编译器提示,不能取到m[1]...