新年学新语言Go之三

一、前言

这一篇简单介绍一下Go中的数组、切片、map和指针。

二、数组

Go语言的数组和Java差不多都是定长的,用于存储有相同类型的元素,数组在内存中是连续分配的,索引数组中任意数据速度都非常快。

注:Go声明变量和其它强类型语言语法上最大不同在于它把类型放在最后,很不习惯。

复制代码
var name [len]type

三、切片

Go的切片和Java的List类似,实现数组的动态扩缩容。

四、map

Go中map也是一种无序的键值对集合,和Java、Python中没有什么区别,用散列表存储数据,能够基于键快速检索数据,注:关于散列表原理下次在数据结构文章中详细整理一下。

五、指针

因为Go要对偏底层系统编程网络编程等有更好的支持,又把C语言中令人头痛的指针给搬出来了,C语言性能好很重要的一点就是在于它使用指针。

指针地址:一个指针变量可以指向任何一个值的内存地址,它所指向的值的内存地址在 32 和 64 位机器上分别占用 4 或 8 个字节,占用字节的大小与所指向的值的大小无关。

注:&取地址操作符,* 取值操作符。其实指针这玩意以前读书学C语言时就没学好,工作中也一直没有用过这玩意。

注:学习Go这几个小时感觉Go的语法比Python、Java要复杂一些,难以理解。

相关推荐
我不会起名字3227 分钟前
Redis 从 0 到 1(二十一):P99 涨到 80ms,慢查询日志 5 步定位法 + Go 采集器
redis·go·慢查询·排查·slowlog
我不会起名字32241 分钟前
Redis 从 0 到 1(十八):List、Pub/Sub、Stream 为什么生产只用 Stream?Go 实操
redis·消息队列·go·stream·pub/sub
孔令飞1 小时前
AI 岗位类别、要求、技能及学习路线
云原生·go·ai编程
君万19 小时前
【LeetCode每日一题】回溯:46. 全排列 78. 子集 39. 组合总和
算法·leetcode·go
vipxieliang1 天前
Go 逃逸分析与内存优化:从读懂 -gcflags=“-m“ 到降低 GC 压力
go
小杨互联网2 天前
Go 现代 CLI 工具离线镜像合集
开发语言·后端·golang·开源·go·命令行
hourinX2 天前
从直接填格子到筛选图案:头像生成这部分是怎样改过来的—— gdenticon 重构日志(三)
go
我不会起名字3222 天前
Redis 从 0 到 1(十三):分布式锁被误删、锁不住?Go 无 Lua 实现 3 级防御
redis·go·分布式锁·watch·setnx
hourinX3 天前
从 v1 到 v2,我重新拆了头像生成的整条链路—— gdenticon 重构日志(二)
go
FungLeo3 天前
成为全栈·Go 后端篇·分类树与标签关系:目录变更为何需要协调
golang·go·gorm·数据库事务·分类树·成为全栈