专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

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

文章永久链接:https://tech.souyunku.com/38360

未经允许不得转载:搜云库技术团队 » golang基础-内置数据结构

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们