![](https://img-blog.csdnimg.cn/084abb3a6dcf4b06afe5e758c7d9acaa.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Golang
文章平均质量分 94
学习与分析Golang语言
dongliba09
这个作者很懒,什么都没留下…
展开
-
【简洁版】Go语言GPM模型梳理
参考来源:30+张图讲解:Golang调度器GMP原理与调度全分析 (qq.com)0. 前提知识对比分析进程、线程与协程 (htmonster.xyz)a.协程的M:N关系为什么是M:N,而不是1:1或者N:1?N:1关系(一个内核线程thread 管理着多个用户协程co-routine)优点:切换开销小缺点:一个挂了就全挂了,一锅端1:1 关系 (一个内核线程thread 管理着一个用户协程co-routine)缺点:创建、删除、切换开销大b.Golang中的.原创 2022-02-06 19:48:02 · 1129 阅读 · 0 评论 -
简洁明要地区分Golang中 string, []byte,[]rune
0. 前导内容ASCII,GBK和UTF-8各种编码区别 (htmonster.xyz)1. 官网定义区别Strings, bytes, runes and characters in Go - The Go Programming Language1.1 byte 字节字节大家肯定都熟悉。字节是计算机的存储单位,1byte=8bits, 1byte 可以表示 2^8=256种情况。而[]byte 可以理解这样一个个byte组合起来的数组。1.2 string 字符串In Go, a原创 2022-01-18 16:48:00 · 881 阅读 · 0 评论 -
【图解】Golang的make与new的区别与深入理解
0. 引言在学习Go语言中,我们在初始化结构的时候常常遇到两个关键字make和new。这两者似乎都是去初始化一个变量,那两者有何区别?1. 官方文档解释直接看官方文档builtin package - builtin - pkg.go.dev,首先可以直接的注意到:两个函数的参数以及返回值不一样。a. 语法区别func make(t Type, size ...IntegerType) Type //多个参数,返回值位类型func new(Type) *Type原创 2021-11-20 09:56:32 · 1431 阅读 · 0 评论 -
【终于明白了】源码+图解分析梳理 Golang 中输入输出I/O
文章目录前言标准库的区别1. 提供基本接口的`io`最基础的接口 `io.Reader`与`io.Writer`辅助接口 `io.Seeker`与`io.Closer`进阶:偏移量指定`io.ReaderAt`和`io.WriterAt`进阶:来源与去处指定 `io.ReaderFrom`和 `io.WiterTo`适配:各种数据类型的读取与写入Byte 读写一个字节Rune 读一个字符String 写入一个字符串组合:各式各样的接口搭配总结:io库中的所有接口概要图实现:接口的各种实现场景附:io库中的一原创 2021-08-24 18:53:32 · 646 阅读 · 0 评论 -
(翻译)Go 切片:基本使用和内部原理
原文:官方博客 Go Slices: usage and internals - The Go Blog (golang.org)添加部分自己的理解介绍Go 的切片类型为处理类型化数据的序列提供了一种方便而有效的方法。切片类似于其他语言中的数组,但有一些不寻常的特性。本文将介绍什么是分片以及如何使用分片。数组切片类型是建立在Go的数组类型之上的抽象,因此要理解切片,我们必须首先理解数组。基于数组!一个数组类型定义指定了一个长度和一个元素类型。例如,[4]int类型表示一个由四个整数组.翻译 2021-07-28 17:47:02 · 227 阅读 · 0 评论 -
Golang 错误与异常 总结与最佳实践
区分错误与异常很赞成参考文章中知乎高赞中“达达”老哥说的,首先要理清错误与异常之间的区别。我在阅读之后我总结的区别如下:区分点错误异常语言层面errorpanic不处理的结果可能会导致逻辑业务上的错误,或者进一步产生异常进程异常退出预见性可以预见不可预见总的来说,在Go语言中,可以按照是否可以提前指导,很分明的区分了错误(可以提前知道)与异常(不能提前知道)。不同语言之间的错误与异常错误与异常,拿来和Python和Java相比的话,总结起来应该是这原创 2021-04-29 19:24:36 · 984 阅读 · 0 评论 -
理解Golang中的nil
参考:有趣的面试题:Go语言中的nil比较 - 知乎 (zhihu.com)理解Go语言的nil - 简书 (jianshu.com)Golang中的nil,没有人比我更懂nil! - 知乎 (zhihu.com)常用的nil在写程序的时候经常会遇到nil这个词,比如说错误判断:f, err := os.Open(filePath)if err != nil { panic(err)}这很容易理解,但是有如果对nil与nil进行比较,如下:fmt.Println(nil==.原创 2021-04-29 10:49:31 · 705 阅读 · 2 评论 -
理清Golang中标准库net/http的结构
参考:https://golang.org/pkg/net/http/参考:https://draveness.me/golang/docs/part4-advanced/ch09-stdlib/golang-net-http/一. 简介http模块提供了HTTP客户端和服务端的实现二. 两个关键结构体: server和client结构体clientHTTP客户端介绍Client的Transport通常具有内部状态(缓存的TCP连接)客户端对于多个goroutine并发使用是.原创 2021-04-21 10:29:17 · 275 阅读 · 0 评论