首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
golang基础
七七里
创建于2022-06-21
订阅专栏
基础
暂无订阅
共18篇文章
创建于2022-06-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
go 封装继承多态
封装性(Encapsulation):Go 语言通过大小写控制访问权限,大写开头的字段和方法可以被外部包访问,小写开头的字段和方法只能被本包访问。这样可以实现封装性,使得外部无法直接访问对象内部的状态
go - select
select是一种go可以处理多个通道之间的机制,看起来和switch语句很相似,但是select其实和IO机制中的select一样,多路复用通道,随机选取一个进行执行,如果说通道(channel)实
go内存模型
go内存模型描述的是 在一个groutine中对变量进行读操作能够侦测到在其他goroutine中对该变量的写操作"的条件 高级编程语言所支持的运算往往不是原子化的,整个并发编程的世界里一切都是不确定
defer/tag使用/int int32
defer执行顺序和调用顺序相反,类似于栈后进先出(LIFO)。 defer在return之后执行,但在函数退出之前,defer可以修改返回值。下面是一个例子: 上面这个例子中,test返回值并没有修
编译
- (66条消息) 一文读懂堆与栈的区别_恋喵大鲤鱼的博客-CSDN博客_堆和栈的区别 (66条消息) golang 逃逸分析与栈、堆分配分析_惜暮的博客-CSDN博客_golang 堆栈分配 通俗来
标准库
context context - 上下文,goroutine上下文,包含运行状态环境,现场的等信息 unsafe Go 的指针不能进行数学运算 不同类型的指针不能相互转换。 不同类型的指针不能使用
通道
channel底层数据结构 创建 make(chan int) //无缓冲 make(chan int,10)//有缓冲 创建的是一个指针 向channel发送数据过程 发送操作转为chansend函
接口-值接收者和指针接收者区别
方法 它和函数的区别在于方法有一个接收者,给一个函数添加一个接收者,那么它就变成了方法。接收者可以是值接收者,也可以是指针接收者。可以互相调用 如果实现了接收者是值类型的方法,会隐含地也实现了接收者是
哈希表2
如何实现get 分为两种:带 comma 和 不带 comma 就是带ok不带ok 遍历过程 复赋值过程 对 key 计算 hash 值,根据 hash 值按照之前的流程,找到要赋值的位置(可能是插入
哈希表
map原理 map是由key-value对组成的,key只会出现一次 它的任务是设计一种数据结构用来维护一个集合的数据,并且可以同时对集合进行增删查改的操作。最主要的数据结构有两种:哈希查找表(Has
数组切片/new/make
切片和数组的异同? 切片的底层是数组,是对数组的封装。 数组是定长的,不同长度的数组表示不同类型,长度不可变 切片可以动态扩容。长度与类型无关 数组就是一片连续的内存, slice 实际上是一个结构体
byte-rune
字符串中的每一个元素叫做“字符”,在遍历或者单个获取字符串元素时可以获得字符。 Go语言的字符有以下两种: 一种是 uint8 类型,或者叫 byte 型,代表了 ASCII 码的一个字符。uint8
gorotine
独立运行的任务叫做gorotineeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
接口
接口类型(接口是一个规范,一堆方法的集合 er结尾) 接口类型 只关心类型可以做什么,而不是储存什么值。任何类型的任何值,只要满足接口的要求,那他就是接口变量。 比如下面代码,a满足了接口,所以可以调
方法
方法声明 基于指针对象的方法 这个方法的名字是(*Point).ScaleBy。这里的括号是必须的;没有括号的话这个表达式可能会被理解为*(Point.ScaleBy)。 或者这样: 这里的几个例子可
defer详解
当一个函数调用前有关键字 defer 时, 那么这个函数的执行会推迟到包含这个 defer 语句的函数即将返回前才执行. 例如: 1 在这里最后执行defer 2 输出: 2 1 需要强调的时, de
bufio包
缓冲区 高效的io读写 减少访问本地磁盘的次数 //读取一行 ReadLine //一行一行读取打印 //有空格也能读取到 //write
io库
Reader接口 专门读取数据的 Writer接口 ........................