new 和make 切片和map
func NewCase() {
// 通过new , 可以创建任意类型,并返回指针
mpPtr := new(map[string]*user)
if *mpPtr == nil { // 通过 * 获取指针内容
fmt.Println("map 为空")
}
// slice
slicePtr := 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 []int
slice = []int{1, 2, 3, 4, 5}
slice1 := make([]int, 10)
slice1[1] = 10
fmt.Println("----slice1-----")
fmt.Println(slice, slice1)
// 切片的截取
slice2 := make([]int, 5, 10)
fmt.Println("----slice2-----")
fmt.Println(len(slice2), cap(slice2), slice2) // 长度和容积
slice2[0] = 0
slice2[1] = 1
slice2[2] = 2
slice2[3] = 3
slice2[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)
}
new 和make 切片和map的更多相关文章
- go语言之行--数组、切片、map
一.内置函数 append :追加元素到slice里,返回修改后的slice close :关闭channel delete :从map中删除key对应的value panic : 用于异常处理,停 ...
- 充电时间 Go中的数组、切片、map简单示例
数组是固定长度的,依稀让我想起了VB:切片是动态的:map一般是键值对 package main import ( "fmt" ) func main() { var userna ...
- golang 数组、切片、map
一.数组(类似python的list) 数组的长度一旦定义了就不能动态增长.并且存储的数据类型必须相同. 创建方法: var 数组名 [长度]数据类型 例如: package main import ...
- Go语言类型(布尔、整型、数组、切片、map等)
1.基本类型 布尔类型:bool 注意:布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换. 整型:int8.byte(uint8).int16.int.uint.uintptr int.ui ...
- GO入门——4. 数组、切片与map
1. 数组 定义数组的格式:var [n],n>=0 数组长度也是类型的一部分,因此具有不同长度的数组为不同类型 注意区分指向数组的指针和指针数组 //数组的指针 a := [2]int{1, ...
- 四、golang内置函数、递归、闭包、数组切片和map
一.总体内容 1.内置函数.递归函数.闭包 2.数组和切片 3.map数据结构 4.package介绍 一.内置函数 注意:值类型用new来分配内存,引用类型用make来分配内存 1.close:主要 ...
- GO语言数组,切片,MAP总结
数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 数组的长度必须是常量,并且长度是数组类型的一部分.一旦定义,长度不能变.数 ...
- golang 切片和map查询比较
package main import ( "fmt" "time" ) var testTimeSlice = []string{"aa" ...
- go:内置函数 | 闭包 | 数组 | 切片 | 排序 | map | 锁
内置函数 1.close: 主要是用来关闭channel 2.len:用来求长度,比如string.array.slice.map.channel 3.new与make都是用来分配内存 new用来分配 ...
- (三十八)golang--json(对切片、map、结构体进行序列化)
JSON(javascript object notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成.key-val JSON是在2001年开始推广的数据格式,目前已 ...
随机推荐
- SQL Povit函数使用及实例
PIVOT函数常用于数据的行转列,同时也可以用此函数实现类似于Excel中的数据透视表的效果. PIVOT函数 PIVOT 函数的基本语法如下: -- PIVOT 语法 SELECT <非透视的 ...
- 前端开发系列028-基础篇之Canvas绘图(文本)
本文将介绍Canvas画布绘制文本相关的技术细节. 一.Canvas画布绘制文本 核心API 绘制文本(描边) 语法 ctx.strokeText( text , x , y , [ maxWidth ...
- SciTech-EECS-Circuits-Power-Switching Power-PFC(Power Factor Correction,功率因数矫正): PFC电路的作用及其原理 + 无桥PFC(四只MOS管取代全桥整流) + 三相Vienna(维也纳)PFC
SciTech-EECS-Circuits-Power-Switching Power-PFC(Power Factor Correction,功率因数矫正) 1. AC电路基础 与 PF(Power ...
- USB.org + USB 3.0 Type-C + PD(Power Delivery)240W
www.usb.org: USB.org Document Library USB Charger (USB Power Delivery) | USB-IF Type-C USB Type-C Ca ...
- SciTech-OS-MacOS系统CSR(系统完整性保护) + 读写原生 ntfs 文件系统的使能
MacOS系统新版本以及可以读写NTFS文件系统 CSR(系统完整性保护)模式的设置: 进入macos 恢复模式(启动时使用Command+R); csrutil disable #关闭CSR 重启进 ...
- SciTech-BigDataAIML-Adam动量自适应的梯度快速收敛
http://faculty.bicmr.pku.edu.cn/~wenzw/optbook/pages/stograd/Adam.html 版权声明 此页面为<最优化:建模.算法与理论> ...
- 原版Win11系统总是断网频繁的问题
有不少电脑用户在我们平常电脑的使用中,不管是浏览网页.看视频.玩游戏.办公等都是离不开网络连接的,但是近期有win11系统用户反映自己的电脑wifi间歇性断网,这是怎么回事呢?有没有什么方法可以解决呢 ...
- 基于c8t6的平衡小车(CubeMX+MDK)(1)OLED的多级菜单显示
OLED的多级菜单显示 OLED控制之旋转编码器兼按键 按键 按键状态 想想按键有哪些状态呢,按下,断开?,这是最基本的KEYSTATUS,按键还可以有短按,长按,一直按,按多次,这都可以产生不同的按 ...
- 典型arm32位单片机启动流程(从上电到main.c)
0 启动流程 复位 通过boot引脚选择启动模式 从地址0x00000000读取 __initial_sp 初始栈顶值到MSP 从地址0x00000004读取 Reset_Handler 地址到PC ...
- 论文解读《GradEscape: A Gradient-Based Evader Against AI-Generated Text Detectors》
发表时间:2025 期刊会议:USENIX Security 论文单位:Zhejiang University 论文作者:Wenlong Meng.Shuguo Fan.Chengkun Wei†.M ...