当前位置: 首页 > news >正文

new 和make 切片和map

func NewCase() {// 通过new , 可以创建任意类型,并返回指针mpPtr := new(map[string]*user)if *mpPtr == nil { // 通过 * 获取指针内容fmt.Println("map 为空")}// sliceslicePtr := new([]user)if *slicePtr == nil {fmt.Println("slice 为空")}*slicePtr = append(*slicePtr, user{Name: "nick", Age: 18})userPtr := new(user)strPtr := new(string)userPtr = &user{Name: "tom",}fmt.Println(mpPtr, slicePtr, userPtr, strPtr) // 返回地址空间
}
map 为空
slice 为空
&map[] &[{nick 18 { }}] &{tom 0 { }} 0xc0000220a0
// MakeCase make 仅用于切片\集合\通道的初始化
func MakeCase() {// 初始化切片.并设置长度和容量slice := make([]int, 10, 20)slice[0] = 10//  初始化集合,并设置集合的初始大小mp := make(map[string]string, 10)mp["A"] = "a"// 初始化通道,设置通道的读写方向和缓冲大小ch := make(chan int, 10)ch1 := make(chan<- int, 10)ch2 := make(<-chan int)fmt.Println(slice, mp, ch, ch1, ch2)
}
func SliceAndMapCase() {// 定义切片var slice []intslice = []int{1, 2, 3, 4, 5}slice1 := make([]int, 10)slice1[1] = 10fmt.Println("----slice1-----")fmt.Println(slice, slice1)// 切片的截取slice2 := make([]int, 5, 10)fmt.Println("----slice2-----")fmt.Println(len(slice2), cap(slice2), slice2) // 长度和容积slice2[0] = 0slice2[1] = 1slice2[2] = 2slice2[3] = 3slice2[4] = 4// 切片的截取slice3 := slice2[1:10]fmt.Println("----slice3-----")fmt.Println(len(slice3), cap(slice3), slice3) // 长度和容积// 切片的附加数据fmt.Println("----切片的附加数据-----")slice3 = append(slice3, 1, 2, 3, 4, 5, 6, 7)fmt.Println(len(slice3), cap(slice3), slice3) // 长度和容积// 集合、无序fmt.Println("----map 集合、无序 -----")mp := make(map[string]string, 10)mp["A"] = "a"mp["B"] = "b"mp["C"] = "c"mp["D"] = "d"fmt.Println(mp)for k, v := range mp {fmt.Println(k, v)}// 删除集合delete(mp, "B")fmt.Println(mp)
}
http://www.zskr.cn/news/6809.html

相关文章:

  • Git 常用操作指南
  • 【光照】[自发光Emission]以UnityURP为例
  • mybatis-plus初体验,解决报错Invalid value type for attribute factoryBeanObjectType: java.lang.String
  • 04_UDP协议
  • 从0到1搭建数据分析自动化程序链,AI应用架构师的实战指南
  • IOS App技术支持网址(URL)
  • C++ 内存管理
  • The 2024 CCPC Online Contest 7/12 L/B/K/D/J/E/C
  • 在joule里面使用agent 功能
  • qoj10093 Jump the Frog
  • new 和make
  • 墨刀是否能替代Axure?从产品经理三大画图能力深度分析
  • 唯创知音AI语音交互芯片与模组介绍
  • 用 Go 重写 adbkit:原理、架构与搭建实践
  • C语言环境搭建之Linux子系统使用vscode连接子系统
  • Ubuntu filebrowser网盘工具安装
  • 微信社群机器人接口
  • Revit二次开发 钢筋生成API(一)
  • 如何通过Python SDK 删除 Collection
  • 图片大全 - voasem
  • 面试时让你设计一个“朋友圈点赞”功能测试,如何回答才出彩?
  • 乌班图无法登录桌面,只能终端登录用户。且有网拉不了包(DNS问题)
  • 完整教程:云手机的技术架构可分为哪些
  • AI提示词遇见精密算法:TimeGuessr如何用数学魔法打造文化游戏新体验
  • Arkime:大规模开源网络分析与数据包捕获系统
  • get和post如何理解
  • me and my girlfriend WP复盘
  • 顺序表
  • 开源・数据・能效:MyEMS 如何成为能源管理革新的核心引擎
  • HMCL 3.6.17 Minecraft我的世界启动器