10 2023 档案
摘要:1. 内置类型和内置函数 1.1 内置类型 总体上分为四类: 其中数字类型主要包括如下,uint8 就是 byte、int16 相当于C语言的short型、int64相当于C语言的long型 也可以总体分为值类型、引用类型 1.2 内置函数 1.3 值类型和引用类型 func main() { va
阅读全文
摘要:1、性能分析工具介绍 pprof 作为 golang 内置的性能分析工具,能够采集程序代码片段的运行数据分析(runtime/pprof)、采集 HTTP Server的运行时数据(net/http/pprof)进行性能分析。 根据输入的命令不同,它可以分析包括程序CPU占用情况、内存mem占用情况
阅读全文
摘要:2、性能更高的第三方库 HttpRouter https://github.com/julienschmidt/httprouter https://pkg.go.dev/github.com/julienschmidt/httprouter 2.1 HttpRouter 与 net/http 比较
阅读全文
摘要:一、什么是Goroutine 在java/c++中我们要实现并发编程的时候,我们通常需要自己维护一个线程池,并且需要自己去包装一个又一个的任务,同时需要自己去调度线程执行任务并维护上下文切换,这一切通常会耗费程序员大量的心智。 Go语言中的goroutine就是这样一种机制,goroutin
阅读全文
摘要:一、条件语句 select 1.1 select 介绍 select { case communication clause : statement(s); case communication clause : statement(s); /* 你可以定义任意数量的 case */ default
阅读全文
摘要:一、TCP编程 使用 Go 语言的 net 包实现 TCP服务端和 TCP客户端。 1.1 TCP服务端 package main import ( "bufio" "fmt" "net" ) //处理TCP连接 func Process(conn net.Conn) { defer conn.
阅读全文
摘要:1、线程与协程的关系 创建时默认的栈空间大小,JDK5以后 Java Thread Stack 默认大小为1M;Goroutine 的 Stack 初始化大小为 2K; Java Thread 和 内核系统线程是 1 : 1 关系;Goroutine 和 内核系统线程关系是 M : N关系; J
阅读全文
摘要:标准库介绍 unsafe: 包含了一些打破 Go 语言“类型安全”的命令,一般的程序中不会被使用,可用在 C/C++ 程序的调用中 syscall-os-os/exec: os: 提供给我们一个平台无关性的操作系统功能接口,采用类 Unix 设计,隐藏了不同操作系统间的差异,让不同的文件系统和操作系
阅读全文
摘要:一、函数介绍 Go 函数的特点: 无需声明原型 支持不定变参 支持多返回值 支持匿名函数和闭包 函数也是一种类型,一个函数可以赋值给变量 函数不支持重载,不支持默认参数 Go 语言里面含有三种类型的函数: 普通带有名字的函数 匿名函数或者 lambda 函数 方法(Methods) 注意Go 语言区
阅读全文
摘要:Sort 排序算法 sort 包中实现了四种基本排序算法:插入排序、归并排序、堆排序、快速排序。但是它们不公开,只供sort包内部自己使用,所以在需要实现数据排序时不必考虑使用哪一种排序方法,只要实现了 sort.Interface 定义的三个方法: 获取数据集合长度Len()、比较两个元素大小Le
阅读全文
摘要:参考: 接口深度解析 1. 接口是什么? Go 语言中的接口实现了多态的思想,接口是一组方法的集合,但是这些方法不包含实现的代码。接口是一种类型! 通过以下格式来定义接口: type Namer interface { Method1(param_list) return_type Method2(
阅读全文
摘要:1. 方法是什么? Go 中方法是作用在接收者(receiver) 上的一个函数,接收者是某种类型的变量。因此方法是一种特殊类型的函数。 Go 通过 接收者+方法 的形式来实现面向对象的概念,一个类加上它的方法等价于面向对象中的一个类。但是一个重要的区别,在Go中,类型的代码和绑定在它上面的方法的代
阅读全文
摘要:1. 基本IO接口 1.1Reader 接口 // Reader 接口定义 type Reader interface { Read(p []byte) (n int, err error) } Read 将 len(p) 个字节读取到 p 中。它返回读取的字节数 n (0 <= n <= len(
阅读全文
摘要:1. 错误处理机制 Go语言内置了一些错误接口,包括有 error 接口,内置 Error() 方法返回一个字符串;我们可以通过自定义异常处理结构体来实现自定义异常信息。比如自定义除法运算的除0异常: package main import "fmt" // 定义一个DividerError结构 t
阅读全文
摘要:1、Go 的环境变量 1. 查看环境变量 查看全部的go环境变量: go env 查看指定的go 环境变量: go env 环境变量名称 重点的环境变量如上 GOROOT、GOPATH、GOBIN、GOOS、GOARCH,下面详细介绍。 2. GOROOT GOROOT是 go 语言的安装目录,它的
阅读全文