首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Golang
订阅
AdamTyn
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
图解Golang的内存分配
以上是程序内存的逻辑分类情况。 Go是内置运行时的编程语言(runtime),像这种内置运行时的编程语言通常会抛弃传统的内存分配方式,改为自己管理。这样可以完成类似预分配、内存池等操作,以避开系统调用带来的性能问题,防止每次分配内存都需要系统调用。 内存分配算法采用Google…
Go 语言闭包详解
什么是闭包?闭包是由函数和与其相关的引用环境组合而成的实体。 下面就来通过几个例子来说明 Go 语言中的闭包以及由闭包引用产生的问题。 在说明闭包之前,先来了解一下什么是函数变量。 在 Go 语言中,函数被看作是第一类值,这意味着函数像变量一样,有类型、有值,其他普通变量能做的…
Go并发原理
Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言;也正是Go语言的并发特性,吸引了全球无数的开发者。 并发(concurrency):两个或两个以上的任务在一段时间内被执行。我们不必care这些任务在某一个时间点是否是同时执行,可能同时执行,也可能不是,…
Golang之轻松化解defer的温柔陷阱
defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。 defer语句通常用于一些成对操作的场景:打开连接/关闭连接;加锁/释放锁;打开文件/关闭文件等。 defer在一些需要…
Golang 编写测试教程
测试函数必须以 TestX... 开头, X 可以是 _ 或者大写字母,不可以是小写字母或数字 样本测试必须以 Example... 开头,输入使用注释的形式 使用思路,被测函数中需要使用的其他依赖函数,进行打桩处理。 对 sql 的执行过程进行打桩。
理解 Go Channels[精品长文]
goroutine-safe,多个 goroutine 可以同时访问一个 channel。 回顾前面提到的 channel 的特性,特别是前两个。如果忽略内置的 channel,让你设计一个具有 goroutines-safe 并且可以用来存储、传递值的东西,你会怎么做?很多人…
由浅入深聊聊Golang的sync.Map
今天在技术群中有小伙伴讨论并发安全的东西,其实之前就有写过map相关文章:由浅入深聊聊Golang的map。但是没有详细说明sync.Map是怎么一回事。 回想了一下,竟然脑中只剩下“两个map、一个只读一个读写,xxxxx”等,关键词。有印象能扯,但是有点乱,还是写一遍简单记…
Go 1.12 版本的新特性
昨天,Go 官方发布 1.12 版本。本文介绍下 Go 1.12 版本变更的内容。 Go 1.12 正式版发布了,距离上个正式发布版 Go 1.11 已经过去半年。跟往常一样,Go 1.12 保持了 兼容性承诺,预期所有 Go 程序会像之前一样正常编译。新版本的更新亮点有: T…
Golang —— goroutine(协程)和channel(管道)
协程(goroutine)是Go中应用程序并发处理的部分,它可以进行高效的并发运算。 协程是轻量的,比线程更廉价。使用4K的栈内存就可以在内存中创建。 能够对栈进行分割,动态地增加或缩减内存的使用。栈的管理会在协程退出后自动释放。 协程的栈会根据需要进行伸缩,不出现栈溢出。 G…