golang 简述一下new make

var 用于声明变量
make 只用于创建切片、map、映射和通道 。它返回一个已经初始化且准备好使用的非零值。
new 用于声明变量,开辟内存,返回零值所对应类型的指针。数组、map等
注:make不可用于数组

代码一下

cpp 复制代码
package main

import (
	"fmt"
)

func main() {
	//var 用于声明变量
	//make 只用于创建切片、map、映射和通道  。它返回一个已经初始化且准备好使用的非零值。
	// new 用于声明变量,开辟内存,返回零值所对应类型的指针。数组、map等
	//注:make不可用于数组

//数组
	//字面量定义数组
	arr := [3]int{1, 2, 3}

	//new一个数组
	arr1 := new([5]int)   //返回指针
	arr1[0] = 2			//可直接给子值
	arr1[2] = 4


//切片

	sli := []int{1, 2, 3} //字面量定义

	//make一个切片,长度为2,容量为4,赋值与追加
	sli1 := make([]int, 2, 4) //len(sli1)  cap(sli1)
	sli1[1] = 5
	sli1 = append(sli1, 77)

	//new一个,然后赋值,new为指针
	sli2 := new([]int)
	sli2 = &[]int{1, 2, 3, 4}


//map
	//map 字面量定义
	map1 := map[int]string{1: "st1", 2: "st2"}

	//make 一个map
	map2 := make(map[int]int)  //这里可以是空值
	map2[2] = 4

	map3 := new(map[int]int) //返回指针

}

-----------end

相关推荐
双叶83616 分钟前
(C语言)超市管理系统(测试版)(指针)(数据结构)(二进制文件读写)
c语言·开发语言·数据结构·c++
PXM的算法星球18 分钟前
使用CAS操作实现乐观锁的完整指南
开发语言
TDengine (老段)28 分钟前
基于 TSBS 标准数据集下 TimescaleDB、InfluxDB 与 TDengine 性能对比测试报告
java·大数据·开发语言·数据库·时序数据库·tdengine·iotdb
lgily-122531 分钟前
常用的设计模式详解
java·后端·python·设计模式
意倾城1 小时前
Spring Boot 配置文件敏感信息加密:Jasypt 实战
java·spring boot·后端
火皇4051 小时前
Spring Boot 使用 OSHI 实现系统运行状态监控接口
java·spring boot·后端
rylshe13142 小时前
在scala中sparkSQL连接mysql并添加新数据
开发语言·mysql·scala
小宋加油啊2 小时前
Mac QT水平布局和垂直布局
开发语言·qt·macos
薯条不要番茄酱2 小时前
【SpringBoot】从零开始全面解析Spring MVC (一)
java·spring boot·后端
MyhEhud2 小时前
kotlin @JvmStatic注解的作用和使用场景
开发语言·python·kotlin