分类
天津大学 | 电子信息
Go string和[]byte详解 Go string和[]byte详解
string和[]byte详解string标准概念Go标准库builtin给出了所有内置类型的定义。 源代码位于src/builtin/builtin.go,其中关于string的描述如下: // string is the set of
2022-01-10
RPC简介 RPC简介
RPC简介Remote Procedure Call Protocol —— 远程过程调用协议 RPC(Remote Procedure Call Protocol),是远程过程调用的缩写,通俗的说就是调用远处的一个函数。 理解RPC
2021-12-24
protobuf protobuf
protobuf简介Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式
2021-12-24
GRPC框架 GRPC框架
GRPC框架GRPC是Google公司基于Protobuf开发的跨语言的开源RPC框架。GRPC基于HTTP/2协议设计,可以基于一个HTTP/2链接提供多个服务,对于移动设备更加友好。目前提供 C、Java 和 Go 语言版本,分别是:g
2021-12-24
Go容器 Go容器
Go容器Go容器数组数组的长度不可变 var name [size]T //声明时需要指定大小 var students [3]int //也可以通过指针操作数组 students2 := new([3]int) fmt.Pri
2021-12-08
Go 三个点...语法使用 Go 三个点...语法使用
Go 三个点…语法使用变长的函数参数函数有多个不定参数的情况,可以接受多个不确定数量的参数。 如果最后一个函数参数的类型的是…T,那么在调用这个函数的时候,我们可以在参数列表的最后使用若干个类型为T的参数。这里,…T在函数内部的类型实际是
2021-12-04
Go Contex Go Contex
Go ContexContexcontext包能够提供一个请求从API请求边界到各goroutine的请求域数据传递、取消信号及截至时间等能力。详细原理请看下文。 在 Go 语言中 context 包容许您传递一个 “context” 到您
2021-11-18
Go GC Go GC
Go GCGo GC“GC Roots” 的对象选择JAVA的GC Root对象选择 虚拟机栈(栈帧中的本地变量表)中引用的对象; 本地方法栈(Native 方法)中引用的对象; 方法区中类静态属性引用的对象; 方法区中常量引用的对象;
2021-11-18
Go Defer Go Defer
DeferDeferdefer的执行顺序多个defer出现的时候,它是一个“栈”的关系,也就是先进后出。一个函数中,写在前面的defer会比写在后面的defer调用的晚。 func main() { defer func1()
2021-11-18
Go内存管理与分配 Go内存管理与分配
Go内存管理与分配Go内存管理Go内存会分成堆区(Heap)和栈区(Stack)两个部分,程序在运行期间可以主动从堆区申请内存空间,这些内存由内存分配器分配并由垃圾收集器负责回收。栈区的内存由编译器自动进行分配和释放,栈区中存储着函数的参数
2021-11-18
Go内存逃逸 Go内存逃逸
Go内存逃逸Go内存逃逸简单来说就是原本应在栈上分配内存的对象,逃逸到了堆上进行分配。如果能在栈上进行分配,那么只需要两个指令,入栈和出栈,GC压力也小了。所以相比之下,在栈上分配代价会小很多。 go语言编译器会自动决定把一个变量放在栈还是
2021-11-18
Go函数 Go函数
Go函数Go函数定义func name(params)(return params){ function body } //eg,如果相邻的参数类型是相同的,则可以省略前一个类型 func cal(a,b int) int{ retur
2021-11-18
1 / 2