go语言自带的数据结构

指针Pointer

定义 var p *int,zero value为nil

p = &i 生成指向对象i的指针

*p 实际操作的是 i

结构体struct

1
2
3
type Vertex struct{
       X, Y int
} 

使用点获取结构体变量的字段值

结构体变量可如此初始化Vertex{X: 1} Y默认为0

数组Array

var a [10]int 数组的size不可变

切片Slice

var s []int

s = a[low : high]  create a slice which includes elements low through high of array a.   不包括最后一个元素high

low和high的默认值分别为0和slice的长度

slice是对数组的引用,通过slice更改元素值相当于更改数组元素值,也会同步体现到其它引用同一数组的slice

slice的length为元素个数,可用len方法获取;capacity为对应数组的元素数,从slice的第一个元素算起,可用cap方法获取。

slice的zero value为nil,其length和capacity都为0,且无对应的数组。

make function

make([] int, length, capacty)

slices of slices 2-dimension slice

[][]int

appending方法

append(s, []T)

数组大小如果不够用于添加新元素,将分配新数组,大小为现有大小的2倍。append方法返回的slice指向新分配的数组。

range

Ranging over a slice returns two values. The first  is the index, the second is a copy of the element at that index.

for i, v := range slice{}

map

map定义 var m map[key_type]value_type

map定义后需要使用make函数初始化,分配内存。

map literal 最后一个键值对末尾也需要逗号

map mutation

插入 更新 m[key] = elem

读取 elem = m[key]

删除 delete(m, key)

m[key] 返回两个值 第一个为value  第二个为key是否存在于m中(true/false)  若key不存在于m中,则返回的value为map元素类型的零值。

Function value can be used as function argument

函数做参数时变量类型中需要写清自身的参数的类型和返回值类型。

闭包函数

一个函数的返回值是另一个函数,返回的函数又调用了父函数中定义的变量。

The function is bound to the variable.

将一个新变量初始化为定义好的闭包函数,每次调用后,被返回值函数引用的变量是在上一次的基础上发生变化,而不是重新初始化。

posted @   hiccuper-  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示