golang基础-内置数据结构


本文摘自网络,作者,侵删。

概述

内置数据结构是一门语言的核心基石之一,了解了基本语法,内置数据结构,便可以胜任简单的开发。golang内置的数据结构比较少,有整形,浮点型,字符串,数组,切片(slice),map这几种。

内置数据结构

整形

整形是指整数数据,golang支持有符号整型int,无符号整型uint。

var a int //位数取决于机器 var a int16 //16位有符号整型 var a int32 //32位有符号整型 var a int64 //64位有符号整型 var a uint16 //16位有符号整型 var a uint32 //32位有符号整型 var a uint64 //64位无符号整型 复制代码

字符串

var str string = "test" // 定义内容为"test"的字符串str 复制代码

数组

单个元素的表达有限,比如我们要定义10个整数,不需要写10行。 array的长度也是Type的一部分,这样就说明[10]int和[20]int是不一样的。

var iAry = [10]int{1,2,3,4,5,6,7,8,9,10} var strAry = [10]string{"aa", "bb", "cc", "dd", "ee"} 复制代码

切片

slice是一个引用类型,是一个动态的指向数组切片的指针。 slice是一个不定长的,总是指向底层的数组array的数据结构。

var al []int     //创建slice sl := make([]int,10)  //创建有10个元素的slice sl := []int{1,2,3} //创建有初始化元素的slice 复制代码

这里说下切片和数组的关系, 切片是针对数组的引用。从具体使用区别上来说:

  1. 虽然都是值传递,但是切片本身是对数组的引用。所以切片在函数中传递,函数里边的更改,会影响函数外面的切片数据。
  2. array的长度也是Type的一部分,这样就说明[10]int和[20]int是不一样的,所以数组不能动态增加,而切片可以。

结论:在实际开发中,通常使用切片,很少直接使用数组的。

map(字典)

golang的map都是hash map,查找的时间复杂度是O(1),也就是说一个集合,如果用切片的方式表达,那么查找一个元素需要遍历。如果能用字典表示,则可以直接索引。

var m map[int]string //declare a map m = make(map[int]string, 0) // init map



本文来自:51CTO博客

感谢作者:mob604756e80bb7

查看原文:golang基础-内置数据结构

相关阅读 >>

将 5 万行 java 代码移植到 Go 学到的经验

Golang进行调试操作方法

Golang 如何并发

手撸Golang 基本数据结构与算法 归并排序

分布式定时任务执行器

Golang io读取文件与判断文件是否存在的方法

Golang的内存管理(下篇)

前 言

beeGo项目和Go项目 打包部署到linux

聊聊cortex的kv.client

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...