首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
golang学习笔记
我是一只鱼吖
创建于2022-04-22
订阅专栏
golang学习笔记
等 123 人订阅
共99篇文章
创建于2022-04-22
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Go语言进阶五——并发安全和锁
有时候go代码中可能会存在多个goroutine同时操作一个资源,这种情况会发生竞态问题,类比火车上卫生间被车厢的人竞争。 例: 互斥锁 互斥锁是一种常用的控制共享资源访
Go语言进阶四——Channel通道
1、channel Go语言的并发模型是GSP,提倡通过通信共享内存而不是通过共享内存而实现通信。 如果说goroutine是Go程序并发的执行体,channel就是它们
Go语言进阶三——GMP原理与调度
一切的软件都跑在操作系统上,真正干活的是cpu,早期的操作系统每个程序就是一个进程,直到一个程序运行完,才能进行下一个进程,就是“单进程时代”,一切的程序只能串行发生。
Go语言进阶二——Goroutine使用详解
goroutine的概念类似于线程,是官方实现的超级“线程池”,是由go程序运行时(runtime)调度和管理。
Go语言进阶一——并发介绍
并发的意义就是让 一个程序同时做多件事情,其目的只是为了能让程序同时做另一件事情而已,而不是为了让程序运行的更快(如果是多核处理器,而且任务可以分成相互独立的部分,那么并发确实可以让事情解决的更快)。
Go语言基础十五——运算符
1、运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 1.1、算术运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除
Go语言基础十四——方法
Go 语言中 的方法 ( Method ) 是一种作用 于特定类型变量 的函数 。这种特定类型变量 叫做接收器( Receiver ) 。 如果将特定类型理解为结构体或“
Go语言基础十三——函数
1、函数声明 使用关键字func定义函数,左大括号不能另起一行。 函数声明包含一个函数名,参数列表,返回值列表和函数体。如果函数没有返回值,则返回列表可以省略。
Go语言基础十二——流程控制
1、if else(分支结构) 1.1、if条件判断基本写法 if匹配的左括号{必须与if和表达式放在同一行,不然会编译错误。 1.2、if条件判断特殊写法 可以在if表
Go语言基础十一——结构体Struct
Go语言中没有类的概念,也不支持类的继承等面向对象的概念,Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性
Go语言基础十——map的实现原理
1、map实现原理 1.1、key,value存储 map是通过key获取value的一种数据结构,其底层存储方式为数组,存储时key不能重复,当key重复时,value
Go语言基础九——Map的基本使用
Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。 1、Map Go语言中的map(映射、字典)是一种内置的数据结构,map是一种无序的基于key-value的数据结构。
Go语言基础八——new和make的使用和区别
new 和 make 是 Go 语言中用于内存分配的原语。简单来说,new 只分配内存,make 用于初始化slice 、map 和 channel。
Go语言基础七——指针详解
Go语言的指针不能进行偏移和运算,是安全指针。 Go语言中函数传参都是值拷贝,当我们想改变某个变量的时候,我们可以创建一个指向该变量地址的指针变量。传递数据使用指针,而无
Go语言基础六——切片底层实现原理
1、切片底层实现 1.1、为什么使用切片 Go数组是值类型,赋值和函数传参操作都会复制整个数组,会消耗大量的内存。切片传数组参数,是引用传递,可以共享内存,节约内存。 数
Go语言基础五——切片Slice
1、引子 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多局限性,例如函数之间传参时只能接收固定长度的数组,[2]int{1,2}已经有两个元素,不能再
Go语言基础四——数组Array
数组是同一种数据类型元素的固定长度的集合,在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可改变 1.1数组定义 1.2数组初始化 1.2.1 方
Go语言基础三——变量和常量
1、变量 Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。Go语言中的变量必须声明后才能使用。 变量是一个抽象概念,它有内存地址,数据类型和值组成: 内存
Go语言基础二——init函数和main函数
1、init函数 init函数用于包(package)的初始化,有下面的特征: init函数是用于程序执行前做包的初始化函数,比如初始化包里的变量等。
Go语言基础一——内置类型和函数
1、内置类型 1.1、值类型 1.2、引用类型(指针类型) 2、内置函数 Go 语言拥有一些不需要进行导入操作就可以使用的内置函数。它们有时可以针对不同的类型进行操作,