美文网首页
struct结构体不能赋值变通方案

struct结构体不能赋值变通方案

作者: 渣渣曦 | 来源:发表于2020-02-09 16:56 被阅读0次

在处理map中结构体元索变更时会出错,代码与错误如下:

package main

import "fmt"

type Animal struct {
    count int
}

func main() {
    m := map[string]Animal{"cat": Animal{2}, "dog": Animal{3}, "mouse": Animal{5}}
        fmt.Println(m)
    m["dog"].count = 4
    
    fmt.Println(m)

}

错误如下:

main.go:12: cannot assign to struct field m["dog"].count in map

指针存储会解决上述问题,代码如下:

package main

import "fmt"

type Animal struct {
    count int
}

func main() {
    m := map[string]*Animal{"cat": &Animal{2}, "dog": &Animal{3}, "mouse": &Animal{5}}
    fmt.Printf("%#v\n",m["dog"])
    m["dog"].count = 4
    fmt.Printf("%#v", m["dog"])
}

相关文章

  • struct结构体不能赋值变通方案

    在处理map中结构体元索变更时会出错,代码与错误如下: 错误如下: 指针存储会解决上述问题,代码如下:

  • C语言结构体

    结构体定于与使用 struct:结构体函数的定义 赋值1: 在初始化 Student 的时候,默认数值是系统值。字...

  • go-day3

    结构体(struct) 结构体定义 结构体初始化 先声明再赋值 声明同时初始化 键值对初始化 值列表初始化 注意事...

  • 菜鸡学Swift3.0 13.结构体

    结构体 struct 是值类型 1.定义结构体 struct 结构体类型 { var 结构体属性:类型 ...} ...

  • 【OC梳理】结构体、枚举

    结构体(struct) OC中的结构体(struct),其实就是C语言中的结构体(struct)常见使用方法。OC...

  • 嵌入式学习笔记19.11.25

    c语言结构体 结构体一般定义全局变量 struct stu{//struct 定义结构体 stu 结构体名称 in...

  • c语言中的结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • 闲聊C语言结构体

    结构体是 C 语言主要的自定义类型方案,这篇就来认识一下结构体。 一、结构体的形态 C源程序(struct.c):...

  • struct和对象的区别

    关于struct和对象之间的区别是什么? 首先看一下代码: 打印结构如下: 创建出来结构体p,赋值给结构体p1,修...

  • Swift优雅的copy一个类对象

    Struct的Copy 我们都知道Swift中的结构体是值传递.也就是说如果我们将某个结构体对象A赋值给对象B.如...

网友评论

      本文标题:struct结构体不能赋值变通方案

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