最新要闻
- 当前简讯:业内第三种烘干技术!石头宣布分子筛洗烘一体机H1
- 全国多地现“三星连珠”天象:金星、木星、弯月连成一条线
- 世界快讯:石头分子筛洗烘一体机H1发布:打破洗烘行业技术天花板
- 百度新车标外观专利获授权 造型罕见
- 世界观天下!小米新专利获授权:一卡多号 可节省功耗
- 世界热消息:8成特效中国制作!《流浪地球2》豆瓣涨至8.3 超100万人评分
- 当前动态:38秒旋风榨汁 小熊无线多功能榨汁机34.9元大促
- 3000元档超香二代骁龙8旗舰!努比亚Z50 16GB+256GB狂飙版来了
- 《暗黑》平替?《火炬之光:无限》国服官宣5月公测
- 头条焦点:首个游戏版ChatGPT 网易《逆水寒》手游预计上半年推出:自研AI得分超过人类
- tcl电冰箱
- 消息!北向资金本周净卖出41.25亿元
- 环球关注:ChatGPT迅速学会下棋精髓 把人类给整不会了 网友:这谁预判得了?
- 世界快报:长城拼了!哈弗H6 DHT-PHEV限时优惠1.5万元:仅14.48万起
- 全球短讯!iPhone 15标准版上了灵动岛和USB-C接口:但跟Pro版差距还是太大
- 《狂飙》高启兰在日本火爆出圈 网友:《柯南》妃英理本理
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
环球头条:Go复合数据类型数组和切片
(资料图片)
数组
声明&&初始化数组
- 数组声明需要指定元素及元素个数,语法格式如下
- 数组用来存储相同唯一类型的,一组已编号且长度固定的序列
var arr_name[num] arr_type
package mainimport "fmt"func main() {// 写添加元素的个数var test [5]stringfmt.Println(test)for i:=0; i< 4; i++{test[i+1] = "test"}fmt.Println(test)// 不写添加元素的个数, 动态加载列表var arry = [...]int{1, 2, 3, 4, 5, 6}fmt.Println(arry)}/*结果[ test test test test][1 2 3 4 5 6]*/
- 索引元素[下标]
package mainimport "fmt"func main() {var test = [...]string{"1","2","3","4"}fmt.Println(test[2])}// 结果 3
- 索引越界报错
invalid argument: index 10 out of bounds
- 索引越界报错,骗过编译器 panic 用一个变量表示索引
package mainimport "fmt"func main() {var idx = 10var test = [...]string{"1","2","3","4"}fmt.Println(test[idx])}// 报错 骗过编译器越界
指针数组
- 数组的元素除了是某个类型外,还可以是某个类型的指针
- new函数返回一个TYPE类型的数据结构划分内存并执行默认的初始化操作,然后返回这个数据对象的指针
- 只声明不初始化,必须用new,
- 两个数组指针直接复制
package mainimport "fmt"func main() {var arry1 [5] *intfmt.Println(arry1)arry1[0] = new(int)arry1[1] = new(int)arry1[2] = new(int)arry1[3] = new(int)arry1[4] = new(int)*arry1[0] =10*arry1[1] =10*arry1[2] =10*arry1[3] =10*arry1[4] =10fmt.Println(arry1)for i:=0; i < len(arry1); i++{fmt.Printf("%v\n",*arry1[i])fmt.Printf("%v\n",arry1[i])}}// 结果/*[ ][0xc00001e0b0 0xc00001e0b8 0xc00001e0c0 0xc00001e0c8 0xc00001e0d0]1010101010*/
- 两个数组指针复制
- 内部存放的是指针,指向同一块地址,直接赋值,内容都一样,看起来是浅拷贝,
- 但其实是深拷贝
- 判定依据两个数据指针不同就是深拷贝,指针地址相同就是浅拷贝
package mainimport "fmt"func main() {var arry1 [3]*stringarry2 := [3]*string{new(string), new(string), new(string)}fmt.Println(arry1)fmt.Println(arry2)arry1 = arry2fmt.Println(arry1)for i:=0; i < len(arry2); i++ {fmt.Printf("%d, %v, %v\n", i, arry1[i], *arry1[i])fmt.Printf("%d, %v, %v\n", i, arry2[i], *arry2[i])}}/*结果[ ][0xc000014260 0xc000014270 0xc000014280][0xc000014260 0xc000014270 0xc000014280]0, 0xc000014260,0, 0xc000014260,1, 0xc000014270,1, 0xc000014270,2, 0xc000014280,2, 0xc000014280,*/
数组指针
- 数组是一个值类型,所有的值类型变量在赋值和作为参数传递时都将产生一次复制操作
- 从内存和性能上来看,在函数间船队数组是一个开销很大的操作,因为无论这数组有多厂,都会完整复制,并传递给函数
- 数组指针只需要很小传递
package mainimport ("fmt""unsafe")func bigArryPoint(arr *[1e6]int64) {fmt.Printf("[数组指针复制:大小:%d 字节]\n", unsafe.Sizeof(arr))}func bigArry(arr [1e6]int64){fmt.Printf("[数组复制:大小:%d 字节]\n", unsafe.Sizeof(arr))}func main() {var arry [1e6]int64bigArry(arry)bigArryPoint(&arry)}/*[数组复制:大小:8000000 字节][数组指针复制:大小:8 字节]*/
多维数组
- 多维数组的典型用例是平面坐标(而为数组)和三维坐标(三维数组)
- Golang的数组本身只有一个唯独,但是我们可以组合多个数组从而创建出多维数组
package mainimport ("fmt""unsafe")func bigArryPoint(arr *[1e6]int64) {fmt.Printf("[数组指针复制:大小:%d 字节]\n", unsafe.Sizeof(arr))}func bigArry(arr [1e6]int64){fmt.Printf("[数组复制:大小:%d 字节]\n", unsafe.Sizeof(arr))}func main() {arry := [4][2] int{{1, 2},{10, 20},{30, 40},{50, 60}}fmt.Println(arry[3])fmt.Println(arry[3][0])}/*结果[50 60]50*/
切片
- 切片是围绕动态数据来构建的
- 数组一旦创建就不能更改长度,但是切片可以按需求自动增长和缩小
- 增长是使用内置的append函数来实现的
- 缩小通过对切片的再次切片来实现
声明和初始化
var直接声明
package mainimport ("fmt")func main() {var s1 []intfmt.Println(s1)s1 = append(s1, 1)s1 = append(s1, 1)s1 = append(s1, 1)fmt.Println(s1)var s2 = []int{1,2,3}fmt.Println(s2)}
使用make
make([]类型, 长度, 容量)
- 以类型0值+容量的个数填充slice
package mainimport "fmt"func main() {// 使用make初始化一个长度为0的slicevar s1 = make([]int, 0)s1 = append(s1, 1)s1 = append(s1, 2)s1 = append(s1, 3)fmt.Println(s1)// 使用make,初始化一个长度为5,容量为5的slicevar s2 = make([]int, 5, 5)s2 = append(s2, 1)s2 = append(s2, 2)s2 = append(s2, 3)fmt.Println(s2)}/*结果[1 2 3][0 0 0 0 0 1 2 3]*/
- new和make对比
- 简单说new只分配内存,make用于slice,map,和channel的初始化。
- 对比表格
函数名 | 适用范围 | 返回值 | 填充值 |
---|---|---|---|
new | new可以对所有类型进行内存分配 | new返回指针 | new填充零值 |
make | make只能创建类型(slice、map、channel) | make返回引用 | make填充非零值 |
通过切片创建新的切片
- 语法如下
slice[start:end:cap]
- 其中start表示从slice的第几个元素开始
- end控制切片的长度(end-i)
- cap控制切片的容量,如果没有给定cap,slice的长度值,则表示到底层数组的最尾部
- 新切片的长度 = end-start
- 新切片的容量 = cap-start
-
世界热点!springCloud Alibaba服务的注册与发现之eureka搭建
1 创建eureka微服务模块。导入maven依赖。<dependency><groupId>org springframework cloud< groupId&g
来源: 环球头条:Go复合数据类型数组和切片
世界热点!springCloud Alibaba服务的注册与发现之eureka搭建
当前简讯:业内第三种烘干技术!石头宣布分子筛洗烘一体机H1
全国多地现“三星连珠”天象:金星、木星、弯月连成一条线
世界快讯:石头分子筛洗烘一体机H1发布:打破洗烘行业技术天花板
百度新车标外观专利获授权 造型罕见
世界观天下!小米新专利获授权:一卡多号 可节省功耗
what are ESC、BEC and UBEC ?
环球微动态丨不通过ArcGIS写Personal Geodatabase(esri mdb)
最新消息:我们喜爱的 10 种免费 SQL Server 资源
世界新消息丨ChatGPT对于普通人有什么机会和影响?
世界热消息:8成特效中国制作!《流浪地球2》豆瓣涨至8.3 超100万人评分
当前动态:38秒旋风榨汁 小熊无线多功能榨汁机34.9元大促
3000元档超香二代骁龙8旗舰!努比亚Z50 16GB+256GB狂飙版来了
《暗黑》平替?《火炬之光:无限》国服官宣5月公测
头条焦点:首个游戏版ChatGPT 网易《逆水寒》手游预计上半年推出:自研AI得分超过人类
tcl电冰箱
消息!北向资金本周净卖出41.25亿元
观天下!分布式事务和Spanner分布式数据库
8000+字,就说一个字Volatile
环球关注:ChatGPT迅速学会下棋精髓 把人类给整不会了 网友:这谁预判得了?
世界快报:长城拼了!哈弗H6 DHT-PHEV限时优惠1.5万元:仅14.48万起
全球短讯!iPhone 15标准版上了灵动岛和USB-C接口:但跟Pro版差距还是太大
《狂飙》高启兰在日本火爆出圈 网友:《柯南》妃英理本理
全球今亮点!数字孪生|可视化图表之分组柱状图
世界今日讯!测试角色在项目各阶段的项目管理tips
当前速读:【JVM】JDK7后intern方法总结
世界热讯:centos7多网口配置同网段IP解决方案
焦点快播:【Vue】vue3 元素在某区域内缩放拖拽
灵活就业交医保太亏了怎么说?交医保太亏了具体指的是什么
苹果水下操控iPhone屏幕专利获批:或万元起售的Ultra机型独享
当前信息:魅族20电池寿命稳了:1600天连续充放容量仍大于80%
【新视野】日系车再受质疑!铃木维特拉遭车主集体投诉:刹车变硬踩不动
全球快讯:女子下班途中被狗撞伤被判工伤 法院:非本人主要责任
LGV 引理
【报资讯】如何实现把多个git仓库合并为一个,并保留提交记录?
AI创作享有版权吗?
世界视讯!卖的比“老头环”快!《霍格沃茨之遗》销量破1200万
今天是世界讨厌香菜日 不爱吃竟是“天注定”:跟基因有关
测试版用户终于能“反悔”了:Win11新功能允许退回正式版系统
今日报丨果然是“应试” IIHS碰撞测试难度提高:年度获奖车型数量腰斩
海绵宝宝是一种原始的什么动物?红色海绵球是干什么用的?
正者无敌三个太太的结局是什么?正者无敌演员表介绍
宫锁连城为什么下架了?宫锁连城的大结局是什么?
安全帽能代替头盔吗?安全帽颜色的级别区分
光盘怎么进行拷贝?光盘拷贝到u盘需要多少钱?
word安全模式是怎么回事?word安全模式怎么解除?
苹果怎么查询激活时间?苹果怎么传输数据到新的手机上?
闪存卡损坏是什么原因?闪存卡损坏怎样修复?
当前速看:易基因|DNA甲基化研究的测序数据挖掘思路:干货分享
速看:Centos7单机部署Etcd
Springcloud~openfeign开启hystrix基于线程池熔断的传值问题
环球热点!产品经理
【网关开发】9.Openresty 自定义流量分流策略支持灰度(金丝雀)等发布业务场景
每日热议!刘洋一杆领跑资格考试36洞 四人并列第二
天天热议:曾凭五菱宏光MINI EV火爆出圈 小米汽车营销负责人周钘离职
全球限量1962台!徕卡推出D-Lux7 “007”限量版相机:售价达16800元
全球最资讯丨《嗜血印》魅魔DLC完善更新 新增魅魔纹和性感尾巴
全球热点!抄底手慢无:南国生椰拿铁33.9元起32杯(赠冰川杯)
热推荐:不满足于对话!微软希望ChatGPT控制机器为人服务
网络时间同步设备(时钟同步)产品的功能及技术参数
每日简讯:MegEngine 使用小技巧:使用 Netron 实现模型可视化
环球今日讯!切换页签,再切换回来,v-tooltip会一直显示问题
世界即时看!小米智能工厂二期项目主体结构已封顶:年底竣工交付
全球热消息:小米汽车明年量产!雷军晒新到手礼物:F1传奇设计师自传
世界百事通!博主实探上海巴奴火锅店:土豆11元6片 换算下来45元1斤
加密劫持病毒现身苹果macOS:盗版软件成主要途径
努比亚Z50 Ultra官宣:真全面屏!
全球速递!巴克利:湖人把一切归咎于威少会让他愤怒 在快船有最佳夺冠机会
全球今亮点!《霍格沃茨之遗》温咖癫啦维欧萨
最快2025年商用!日本飞行汽车载人试飞成功:机体中国造
天天最资讯丨记Cucumber行为驱动测试的简单配置与使用方式
老人推倒摩托后去世 继承人被起诉背后:老人是惯犯 车主不能忍
【全球独家】读Java实战(第二版)笔记19_尾声
全球短讯!衡水新型冠状病毒肺炎疫情:2月24日衡水疫情最新消息今天数据统计情况通报
全球即时:搜狗输入法UOS版上架统信UOS:适配龙芯LoongArch等架构
每日短讯:干翻 nio ,王炸 io_uring 来了 !!(图解+史上最全)
全球快看:CPU推理|使用英特尔 Sapphire Rapids 加速 PyTorch Transformers
世界视点!死锁面试题
18、实体类对象比对-JSON
产品经理,项目经理,FTO
当前最新:《狂飙》取景地拍照收费摊主已搬离:没给续签合同
环球速看:索尼A7M4将发布2.0固件 或下放部分索尼A7R5功能
80%的人出错了 你的数码相机用对了吗?
全球热讯:爱奇艺奇迹一般的赚钱了!但是 就这它也好意思?
快看点丨AMD Zen4锐龙9 7945HX大放异彩!16核心打平Intel 24核心
世界今头条!长色斑的原因有哪些_脸上为什么会长色斑
热门:007 - 研究
每日信息:47.多态
第二章 物理层
day02-自己实现Mybatis底层机制-01
世界快资讯:CSS背景设置与Emmet语法
环球观焦点:AMD发布23.2.2版驱动:RX 7900显卡小打鸡血 性能提升14%
天天最新:大理州5个新能源装备制造项目投产
深圳一外卖小哥疑送餐时猝死:曾拼命跑上六楼
环球热头条丨向上捅破天 吉利银河支持低轨卫星技术:全球无盲区定位
13代酷睿i9+满血4060显卡!华硕天选4正式开售 到手价8999元
当前短讯!造车新势力 电动自行车品牌“VELOTRIC”A轮融资:获5000万元
中疾控提醒:近期水痘处于高发期 要注意做好防护!
13代酷睿+RTX 4060!七彩虹将星X16 Pro图赏