首页 > 其他分享 >GO 使用嵌套map应该多次分配空间

GO 使用嵌套map应该多次分配空间

时间:2022-12-27 15:58:08浏览次数:32  
标签:tmp map 嵌套 hs make interface int64 GO

GO 使用嵌套map应该多次分配空间


demo


package main

import (
	"fmt"
)

func main() {

	// 初始化一个map
	var tmp map[int64]interface{}
	//tmp[1] = "abc" // panic:assignment to entry in nil map ;必须使用make分配空间
	tmp = make(map[int64]interface{})
	tmp[1] = "123"

	// 一般不使用上面复杂写法,直接声明赋值
	var m1 = make(map[int64]interface{})
	m2 := make(map[int64]interface{}) // uber go语言编码规范 推荐使用局部变量写法
	m3 := map[int64]interface{}{}     // 字面量直接赋值

	// 使用嵌套map
	hs := make(map[int64]map[string]interface{})
	//hs[1]["name"] = "张三" // 这么做会panic, 因为 make() 只为最外部的map分配了空间

	// 正确写法1
	//hs[1] = make(map[string]interface{})
	//hs[1]["name"] = "张三"

	// 正确写法2
	hs[1] = map[string]interface{}{}
	hs[1]["name"] = "张三"
	// ...

	fmt.Println(m1, m2, m3, hs)

}

标签:tmp,map,嵌套,hs,make,interface,int64,GO
From: https://www.cnblogs.com/dibtp/p/17008225.html

相关文章

  • GoLang初探
    简介     多核处理器越来越普及,那有没有一种简单的办法,能够让我们写的软件释放多核的威力?答案是:Yes。随着Golang,Erlang,Scale等为并发设计的程序语言的兴......
  • new Map() 小实例
    newMap()定义://constmap=newMap();constmap=newMap([[1,2],[{a:1},2],["1",2]]);console.log(map)//Map(3){1=>2,{…}=>2,"1"=>2}......
  • Android NDK下编译google protocol buffer(protobuf)
    前面发了一片windows下编译protobuf的文章后来把生成的.a文件加到android工程后发现不可用所以只好自己使用NDK编译protobuf了(虽然这样,生成的Inclule的头文件还是很有用......
  • 初步实现GoQtTemplate
    #ifndefMAINWINDOW_H#defineMAINWINDOW_H#include<QMainWindow>//新添加#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>#include<opencv2/......
  • GO json.Unmarshal() 解析不区分json字段的大小写
    GOjson.Unmarshal()解析不区分json字段的大小写demopackagemainimport( "encoding/json" "fmt")typeDemostruct{ ABDstring`json:"ABD"`}typeDem......
  • Golang中interface的使用建议
    https://medium.com/@mbinjamil/using-interfaces-in-go-the-right-way-99384bc69d39分享的是一个关于Golang中interface的正确使用方法。讲道理在medium上找一篇对我有......
  • 基于go语言的声明式流式ETL,高性能和弹性流处理器
    简要介绍Benthos,并给出若干示例,指导如何安装和运行。BenthosBenthos是一个开源的、高性能和弹性的数据流处理器,能够以各种代理模式连接各种源和汇,可以帮助用户在不同......
  • Golang开发项目目录简介以及目录结构设置规范
    一、Golang项目简单介绍Golang简单的目录结构如下:其中,bin用来存放经过gobulid后的可执行文件,pkg存放编译后的gomodule,而src就存放我们项目的代码 二、三种常用目录结......
  • Golang 环境变量和项目结构
    1.Golang环境变量和项目结构常用exportGO_HOME=/opt/modules/goexportGOPATH=/home/user/go$GO_HOME/bin:$GOPATH/bin12341.1.为什么我使用gobuild命令没有没有......
  • Golang一角:环境变量(Go开发必需的环境变量、普通环境变量)
    “环境变量”这个词,有经验的开发同学对它一定很熟悉了,它提供给软件工程以高灵活性、高扩展性,大到操作系统,小到某个项目,都有它的影子,它的表现方式有很多。微服务应用提倡将......