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年开始推广的数据格式,目前已 ...
随机推荐
- Sqlserver注释
Sqlserver管理工具操作方法 https://www.xuebuyuan.com/411866.html 右键属性 扩展属性 名称指定特定名称:MS_Description 这就是注释了 ...
- java开发超级简单技巧
JAVA EE Java Platform,Enterprise Edition---java平台企业版 java SE Java Platform,Standard Edition---java平台 ...
- 树莓派4b安装retropie
RetropieRetropie可以将你的树莓派或者PC变成一台复古游戏机模拟器. 其基于完整的操作系统之上,你可以把它装在Raspbian系统上,或者直接刷入完整的镜像然后再添加更多的软件.Retr ...
- 前端开发系列019-基础篇之JavaScript和JSON
本文输出和JSON有关的以下内容 > ❐ JSON和javaScript > ❐ JSON的语法介绍 > ❐ JSON的数据类型 > ❐ JSON和XMLHTTPRequest ...
- iOS开发网络篇—实现一个视频播放客户端小应用(一)
iOS开发网络篇-实现一个视频播放客户端小应用(一) 一.初步实现(完成tableview的基本数据展示) 1.前提说明 已经搭建了本地服务器,在本地服务器中存放了视频信息等资源. 服务器的资源 2. ...
- 使用 Git 时出现 unable to access,如何解决?
回答重点 这个问题通常是由于网络访问问题.Git 配置错误或代理设置问题引起的.常见的解决方案: 1)检查网络连接:确保可以访问外部网络,尤其是 Git 仓库所在的服务器. 2)检查 Git 配置:使 ...
- idea 学会看log文件
简介 在 help -> show Log in Explore 可以看到log文件 可以更具log文件查找错误 TIPS maven的配置信息 主要配置两个信息 一个是镜像的配置 另一个是包目 ...
- iPaaS中API自动化测试的作用
在iPaaS中,API自动化测试的作用主要是有助于验证集成流程的正确性.保证数据一致性.监控和故障排除.性能评估.支持持续集成和持续交付,并增加合作和安全性.通过自动化测试,可以提高iPaaS平台的稳 ...
- SciTech-Mathmatics-Probability+Statistics-Population-Sampling of Region of Population : Proportion + Mean + Confidence Interval
SciTech-Mathmatics-Probability+Statistics-Population-Sample: Sample Proportion vs. Sample Mean: The ...
- JAVA基础-2-注释--九五小庞
注意:注释不会执行,注释是给人看得 注释的类型都有什么呢? 单行注释 多行注释 文档注释 测试代码 public class HelloWord { public static void ma ...