golang

golang 中使用 writev (sendmsg) 系统调用来一次发送多块数据

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 writev,或者说 sendmsg 等系统调用,能够发送多个数据块。从节约系统调用次数的角度说,这个 api 非常好。 下面演示如何在 golang 中使用 ......
sendmsg 数据 golang writev 系统

云端golang开发,无需本地配置,能上网就能开发和运行

不想装golang,不想装IDE,还想有个流畅的运行环境,最重要的是一分钱都不想花,嗯嗯,GitHub云开发环境全部满足你,一切操作尽在本文 ......
能开发 云端 golang

golang 获取 mongo 数据库状态

命令行模式 navicat golang package main import ( "context" "encoding/json" "fmt" "log" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo ......
状态 数据库 数据 golang mongo

golang的Leaf框架安装步骤

最近在学习golang的Leaf游戏服务器框架(官方github),官方的安装步骤,非常简单,如下图: 我在安装的时候也遇到一些疑问,因此记录下来我的实操步骤! 1、我的现有GOPATH=E:\Go,src目录下有一些做过的项目 2、获取LeafServer,我在src目录下clone的,遵循以前的 ......
框架 步骤 golang Leaf

linux下安装golang的方法

文章地址 https://cloud.tencent.com/developer/article/1721945?from=15425 不同版本: https://golang.google.cn/dl/ ......
方法 golang linux

golang validator 检验工具的使用指北

golang validator 包的使用指北 原创 阿兵云原生 阿兵云原生 2023-09-10 09:27 发表于广东 看到 validator 咱们第一反应会想起啥?见名知意我就可以知道他是一个验证器,如果用过 gin web 框架的同学,自然是用过 gin 里面的 validator,只不过 ......
validator 工具 golang

Golang Map底层实现简述

Go的map是一种高效的数据结构,用于存储键值对。其底层实现是一个哈希表(hash table),下面是有关map底层实现的详细介绍: 哈希表: map的底层实现是一个哈希表,也称为散列表。哈希表是一个数组,其中每个元素被称为"桶",用于存储键值对。 哈希表的大小是可动态调整的,当存储的键值对数量达 ......
底层 Golang Map

Golang logrus用法

package xlog import ( "bufio" "fmt" "github.com/sirupsen/logrus" rotatelogs "github.com/lestrrat-go/file-rotatelogs" "github.com/rifflock/lfshook" "os ......
Golang logrus

Golang viper读取配置

go get github.com/spf13/viper config.toml title = "toml exaples" redis = "127.0.0.1:3300" [mysql] host = "192.168.1.1" ports = 3306 username = "root" ......
Golang viper

Golang sync包中errgroup的使用详解

WaitGroup 主要用于控制任务组下的并发子任务。它的具体做法就是,子任务 goroutine 执行前通过 Add 方法添加任务数目,子任务 goroutine 结束时调用 Done 标记已完成任务数,主任务 goroutine 通过 Wait 方法等待所有的任务完成后才能执行后续逻辑 pack ......
errgroup Golang sync

golang之xorm简单使用

go get github.com/go-xorm/xorm package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "github.com/go-xorm/xorm" ) type PointInfo struct { Id i ......
golang xorm

Golang操作es使用mysql语法

package main import ( "context" "encoding/json" "fmt" "github.com/elastic/go-elasticsearch/v7" "github.com/elastic/go-elasticsearch/v7/esapi" "log" ) ......
语法 Golang mysql

Golang泛型的简单使用

package main import "fmt" // MyInt ~表示不仅支持int8, 还支持int8的衍生类型int8A和int8B type MyInt interface { int | ~int8 | int16 | int32 | int64 } func getMaxNum[T ......
Golang

Systemd集成Golang二进制程序

首先新建Service,名称叫做server-api vim /lib/systemd/system/server-api.service [Unit] Description=server api [Service] Type=simple Restart=always RestartSec=5s ......
二进制 Systemd 程序 Golang

【对象存储】Minio本地运行和 golang客户端基本操作

运行环境 OS和Golang版本: go version go1.21.0 darwin/arm64 安装 源码安装 下载最新版本的源码,地址https://github.com/minio/minio后编译 cd minio go build main.go # 得到 116M Oct 19 15 ......
基本操作 客户端 对象 客户 golang

golang 实现协程池

import ( "fmt" "sync" "time" ) type Task func() type ThreadPool struct { workerCount int taskQueue chan Task wg sync.WaitGroup } func NewThreadPool(wo ......
golang

玩一玩 golang 汇编(二)

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 上次玩 golang 汇编是使用了一个 python 的 intel 汇编转换 plan9 汇编的工具,很不好用。 本次试试一些 golang 实现的工具。 ......
golang

【介绍一个工具】图形化界面查看一个 golang 二进制文件的汇编代码

作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 通常,可以通过命令行工具,来查看一个代码文件对应的汇编代码: go build -gcflags -S api.go // 或者 go tool compil ......
二进制 图形 界面 代码 文件

golang常见用法

结构体数组与接口数组转换 如果想把[]struct转为[]interface,我们发现直接赋值会报错。 理论上interface可以转换任何数据,为什么结构体数组不可以呢?这是因为interface的设计导致的,如果能理解interface的底层实现,就能很清楚知道如何转换了。 如图所示,与C++的 ......
常见 golang

golang生成uuid

1,借助linux系统命令 /usr/bin/uuidgen 1.1 代码 package main import ( "fmt" "log" "os/exec" ) func main(){ out,err := exec.Command("uuidgen").Output() if err!=n ......
golang uuid

【转】dive into golang database/sql(1)

转,原文:https://www.jianshu.com/p/3b0b3a4c83da 数据库操作是一个应用必不可少的部分,但是我们很多时候对golang的sql包仅仅是会用,这是不够的。每一条语句的执行,它的背后到底发生了什么。各式各样对sql包的封装,是不是有必要的,有没有做无用功? 这是go ......
database golang dive into sql

【转】dive into golang database/sql(2)

转,原文: https://www.jianshu.com/p/807257fcb985?utm_campaign=studygolang.com&utm_medium=studygolang.com&utm_source=studygolang.com 当我们拿到一个DB实例之后就可以操作数据库了 ......
database golang dive into sql

【转】dive into golang database/sql(3)

转,原文: https://www.jianshu.com/p/cd8cee3d7fc3 上一章中我们一起探讨了golangdatabase/sql包中如何获取一个真实的数据库连接。当我们拿到一个数据库连接之后就可以开始真正的数据库操作了。本章讲继续深入,一起探讨底层是如何进行数据库操作的。 上一章 ......
database golang dive into sql

golang + rabbitmq 死信队列

生产者 package main import ( "fmt" "github.com/streadway/amqp" "strconv" "time" ) // 启动生产者,n秒之内,如果consume没有消费,那么就会被die-死信队列消费 func main() { // # 1.创建连接 m ......
死信 队列 rabbitmq golang

golang的值接收者与指针接收者(二)

虽然在平时使用时,值接收者和指针接收者调用值方法和指针方法都没有问题,但是在涉及到实现接口方法时,有时会遇到如下报错: Son does not implement Father (SomeFunction method has pointer receiver) 比如: type Person i ......
接收者 指针 golang

golang值接收者与指针接收者(一)

golang方法的接收者有两种:值接收者与指针接收者。 平时使用中两种接收者的主要区别就是能不能修改接收者的内部值。 先说结论:值接收者方法不能修改结构体内部的值,指针接收者方法可以修改结构体内部的值。 做个测试: type Student struct { age int } func (s St ......
接收者 指针 golang

golang 并发之goroutine

goroutine 的启动 将要并发执行的任务包装成一个函数,调用函数时候前面加上go 关键字,就能够开启goroutine去执行该函数的任务 goroutine对应的函数执行完成,该goroutine就结束 程序启动的时候自动的创建一个goroutine去执行main函数 main函数结束之后那么 ......
goroutine golang

golang map json 结构体

要将JSON转换为Go结构体,您可以使用json.Unmarshal()函数。首先,您需要定义一个与JSON数据结构匹配的Go结构体,然后使用json.Unmarshal()将JSON数据解码为该结构体。以下是一个示例:假设有如下JSON数据: { "name": "John Doe", "age" ......
结构 golang json map

golang之异步队列Asynq

Asynq[1]是一个Go实现的分布式任务队列和异步处理库,基于redis,类似Ruby的sidekiq[2]和Python的celery[3]。Go生态类似的还有machinery[4]和goworker 同时提供一个WebUI asynqmon[5],可以源码形式安装或使用Docker imag ......
队列 golang Asynq

golang 反斜杠替换

难点 主要是 golang 和 Java 类似双引号定义字符串 python php 单双引号通吃 只是上代码 package main import ( "fmt" "strings" ) func main() { str := "+++\\+++" replacedStr := strings ......
斜杠 golang