go-gprc gprc go

Go语言手册

(2023-6-8更新) ## 资料来源 [Go 基础系列 | 骏马金龙](https://www.junmajinlong.com/golang/index/ "Go 基础系列 | 骏马金龙") [Go 语言教程 | runoob](https://www.runoob.com/go/go-tut ......
语言 手册

go 环境变量设置

1、GOROOT C:\Program Files\Go 2、path %GORROT\bin% 3 、GOPATH D:\project\go (工作目录,我们的go项目工作路径) 环境变量设置好后,重新打开一次dos的终端,通过go version 或者 go env 命令来进行测试。 ......
变量 环境 go

go-tc golang tc 工具包

go-tc 是基于golang 的限速工具包,可以通过修改队列通过filter 以及类别进行限速处理,是一个听方便的golang 包类似的有基于cli 的wondershaper 可以通过cli 实现限速 参考资料 https://github.com/florianl/go-tchttps://g ......
工具包 工具 golang go-tc tc

go开发邮箱发验证码使用github.com/jordan-wright/email包Test报错EOF

代码如下: 1 e := email.NewEmail() 2 e.From = "Get <tanyuyan19@163.com>" 3 e.To = []string{"1505985616@qq.com"} 4 e.Subject = "验证码发送测试" 5 e.HTML = []byte(" ......
jordan-wright 邮箱 github jordan wright

go json、yaml解码

func GetFoo(ctx context.Context) (*T, error) { req, err := http.NewRequest("GET", "http://foo/t.json", nil) if err != nil { return nil, err } req = re ......
json yaml go

【读书笔记】go语言学习指南 - 基础类型和变量声明

# 基础类型和变量声明 ## 内置类型 go语言中内置了很多的基础类型: - 布尔型(boolean) - 整型(integer) - 浮点型(float) - 字符串(string) ### 零值 在go语言中,一个变量声明但是未赋值的变量会被go赋予零值,这样做的好处可以让代码变得更加简洁清晰。 ......
语言学习 变量 语言 类型 基础

go语言接口与断言

# go语言接口与断言 ## 类型 接口也是go语言中的一种类型,它能够出现在变量的定义、函数的入参和返回值中并对它们进行约束,不过go语言中有两种略微不同的接口,一种是带有一组方法的接口,另一种是不带任何方法的interface{} go语言使用runtime.iface表示第一种接口,使用run ......
接口 语言

go语言中经常犯的错误

0.1、索引 https://waterflow.link/articles/1664080524986 1、未知的枚举值 我们现在定义一个类型是unit32的Status,他可以作为枚举类型,我们定义了3种状态 type Status uint32 const ( StatusOpen Statu ......
错误 语言

windows go

包含了cgo exec: "gcc": executable file not found in %PATH% 原因分析通过提示可知;cc1.exe版本不是64位的,在64位环境下无法编译 解决办法需要将mingw32换成mingw64. 下载安装包下载地址: https://sourceforge ......
windows go

【实战分享】使用 Go 重构流式日志网关

# **项目背景** 分享之前,先来简单介绍下该项目在流式日志处理链路中所处的位置。 ![f54baabbaacd21e9aacf9eb208bc543e.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cc9c6a53bf534a618 ......
网关 实战 日志 Go

使用go来实现一个简单的增删改查接口

最近在学习go,发现go自带的http包很强大,可以通过简单的代码实现数据的增删改查,遂进行一下练习,代码如下: ```go package main import ( "encoding/json" "fmt" "net/http" "strconv" ) type goods struct { ......
接口

go语言使用GRPC流处理模式

# go语言使用GRPC流处理模式 标签(空格分隔): go,grpc proto文件 syntax = "proto3"; package four_kinds_method.v1; option go_package="go-example/grpc/four_kinds_method/prot ......
语言 模式 GRPC

Go vs netcore

Netcore和Go是两种不同的编程语言,各自具有不同的特点和应用领域。下面是它们之间的比较: 1. 性能和并发性:Go语言以其出色的性能和并发性而闻名。它采用了一种称为Goroutine的轻量级线程模型,使得在Go程序中能够轻松地实现高并发。与此相比,Netcore在性能和并发性方面略逊一筹。 2 ......
netcore Go vs

Go内存逃逸

前言很久以前就听过过内存逃逸这个词, 最近了解了一下, 才发现是个很简单的概念. 只要把前言部分看完, 就已经了解了. 来吧… 在介绍内存逃逸之前, 我们先用C语言来引出这个概念. 我们的进程在内存中有栈内存和堆内存的概念, 栈内存是函数执行的局部内存, 会随着函数的结束而全部释放, 而堆内存是需要 ......
内存

通过redis学网络(1)-用go基于epoll实现最简单网络通信框架

![image.png](https://img2023.cnblogs.com/blog/1382767/202306/1382767-20230607105418219-574417823.png) > 本系列主要是为了对redis的网络模型进行学习,我会用golang实现一个reactor网络 ......
网络 网络通信 框架 redis epoll

go 常用命令总结

转载请注明出处: go build:编译包和依赖项,生成可执行文件。命令用于编译包和依赖项,生成可执行文件。当对Go程序进行修改后,需要使用go build命令重新编译程序,以生成新的可执行文件。该命令不会自动下载和安装依赖项,需要事先使用go get命令下载依赖项 go run:编译并运行Go程序 ......
命令 常用 go

Go Swagger安装及使用

![](https://img2023.cnblogs.com/blog/1118095/202306/1118095-20230606231817333-413213876.png) 地址: `https://github.com/swaggo/gin-swagger` ### 安装 1. 根据g ......
Swagger Go

go语言

求变量类型: ```go package main import ( "fmt" "reflect" ) func main() { var num float64 = 3.14 // 方法1: println(reflect.TypeOf(num).Name()) // 方法2: fmt.Prin ......
语言

Go使用net.rpc

# Go使用net.rpc 标签(空格分隔): go // 使用net.rpc包 服务端 [gob协议默认] package main import ( "log" "net" "net/rpc" ) type HelloService struct { } func (h *HelloServic ......
net rpc

Go协程Goroutines

1. 什么是 Go Goroutines? Goroutine是一个简单的模型:它是一个函数,与其他Goroutines并发执行且共享相同地址空间. Goroutines的通常用法是根据需要创建尽可能多的Groutines,成百上千甚至上万的. 创建这么多 goroutines势必要付出不菲的代价? ......
Goroutines

linux下go语言环境安装

# linux下go语言环境安装 ## 下载go包,选择合适的版本,(https://golang.google.cn/dl/) #### 方式一,https://golang.google.cn/dl/ ``` 选择合适的包,下载之后放到Linux下 ``` #### wget ``` wget ......
语言 环境 linux

在go语言中,为什么使用defer? defer 为何能实现延迟加载?

defer会在函数返回前执行,那么我把代码,例如资源释放等,写到函数末尾不就行了,为什么使用defer?什么情况下必须使用defer,它有什么好处呢? 在使用defer的场景中,主要有以下几个情况: 1. 关闭资源:使用defer可以确保在函数执行完毕后关闭打开的文件、网络连接、数据库连接等资源。如 ......
defer 语言

算法 in Go:Binary Search(二分查找)

# 算法 in Go:Binary Search(二分查找) ## Binary Search(二分查找) ### Binary Search(二分查找) - 猜数 - 1、2、3、4、5、6、7、8 - 排好序一个集合,先从中间开始猜,根据提示就可以排除一半,在剩余的一半里,再从中间开始猜,依此类 ......
算法 Binary Search in

go map gc的测试代码

**本文章由github copilot协助生成** 遇到一个离职同事写的代码,如下: ```go package mapGC func mapGc() { lock := sync.Mutex{} go func() { for { time.Sleep(12 * time.Hour) tmp : ......
代码 map go

windows安装go开发环境问题记录

## vscode安装go相关插件失败 Installing github.com/cweill/gotests/gotests@latest FAILED Installing github.com/fatih/gomodifytags@latest FAILED Installing githu ......
windows 环境 问题

go语言切片

特性 长度可变、 内容可变、 引用类型、 底层基于数组 定义 var s1 []int // 长度、容量为0的切片,零值 var s2 = []int{} // 长度、容量为0的切片,字面量定义 var s3 = []int{1, 3, 5} // 字面量定义,长度、容量都是3 var s4 = m ......
语言

go 实现ringbuffer以及ringbuffer使用场景介绍

> ringbuffer因为它能复用缓冲空间,通常用于网络通信连接的读写,虽然市面上已经有了go写的诸多版本的ringbuffer组件,虽然诸多版本,实现ringbuffer的核心逻辑却是不变的。但发现其内部提供的方法并不能满足我当下的需求,所以还是自己造一个吧。 源码已经上传到github ``` ......
ringbuffer 场景 go

go语言数组

线性数据结构 线性表 是一种抽象的数学概念,是一组元素的序列的抽象,它由有穷个元素组成(0 个或任意个)。包括顺序表和链接表。 顺序表:使用一大块连续的内存顺序存储表中的元素,这样实现的表称为顺序表,或称连续表 在顺序表中,元素的关系使用顺序表的存储顺序自然地表示; 链接表:在存储空间中将分散存储的 ......
数组 语言

从源码分析 Go 语言使用 cgo 导致的线程增长

TDengine Go 连接器 使用 cgo 调用 taos.so 中的 API,使用过程中发现线程数不断增长,本文从一个 cgo 调用开始解析 Go 源码,分析造成线程增长的原因。 ## 转换 cgo 代码 对 driver-go/wrapper/taosc.go 进行转换 `go tool cg ......
线程 源码 语言 cgo Go

写给go开发者的gRPC教程-通信安全

使用 TLS 安全传输数据 什么是 SSL/TLS SSL 包含记录层(Record Layer)和传输层[1],记录层协议确定传输层数据的封装格式。传输层安全协议使用X.509[2]认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密匙作为会话密匙(Session key[3])。这个 ......
开发者 教程 gRPC