golang slice

Golang 面向对象深入理解

1 封装 Java 中封装是基于类(Class),Golang 中封装是基于结构体(struct) Golang 的开发中经常直接将成员变量设置为大写使用,当然这样使用并不符合面向对象封装的思想。 Golang 没有构造函数,但有一些约定俗成的方式: 提供 NewStruct(s Struct) * ......
对象 Golang

golang常用json库的选择

Sonic 如果对性能要求非常高,可以使用Sonic。但是Sonic有一些要求,高性能必然带来特例化,官方也介绍了,对CPU架构和系统等都有要求。其底层使用了一些汇编和c的代码实现,所以如果不是对性能要求特别高,可以不用。 fastjson fastjson介绍就是非常快,不过功能相对较少。好久已经 ......
常用 golang json

golang gin框架使用endless实现热更新原理和操作步骤

最近在学习go的Gin Web Framework,其中一个知识点是:【优雅地重启或停止】,原文截图: 这里说的其中一个方法是使用【fvbock/endless】是实现,记录下自己的实操步骤! Gin Web Framework文档地址:https://gin-gonic.com/zh-cn/doc ......
框架 步骤 原理 endless golang

Golang中log日志包的使用(转)

1.前言 作为后端开发人员,日志文件记录了发生在操作系统或其他软件运行时的事件或状态。技术人员可以通过日志记录进而判断系统的运行状态,寻找导致系统出错、崩溃的成因等。这是我们分析程序问题常用的手段。 2.log包介绍 在Golang中记录日志非常方便,Golang提供了一个简单的日志记录包log,包 ......
Golang 日志 log

systemd中的slice服务单元

使用场景 对一组服务进行管理,比如限制资源使用、调整启动顺序和依赖关系。 比如,好几个服务都需要限制内存使用,可以每个服务都加个MemoryLimit=373741824,也可以将这些服务加入到同一个slice,然后,只需要在slice中配置MemoryLimit=373741824。 介绍 sys ......
单元 systemd slice

golang flag的使用

package main import ( "backend-service-api-scripts/utils" "database/sql" "flag" "fmt" "log" "os" ) var ( db *sql.DB = utils.ConnectData() // 这里的连接数据库需 ......
golang flag

打印空心金字塔_Golang实现

* * * * * * * * * * * * * * * * * * * * * * * * 需求:在控制台打印如上图所示的效果图 解题思路: 首先简化问题,先打印出实心金字塔,然后可观察得知,层数与star(星号)数量保持着一定关系(奇数队列),1、3、5、7……2n-1 然后,格式化打印效果, ......
金字塔 金字 Golang

Golang后端大厂面经!

大家好,我是阳哥。专注Go语言的学习经验分享和就业辅导。 之前分享了很多 Golang 后端的大厂面经,不少同学在催更新,这篇给大家继续安排。 本文来自一位同学的投稿,面试深X服的面经汇总,前半部分主要是Go语言相关,后半部分也涉及微服务和Redis。 Slice扩容 slice切片扩容机制?为什么 ......
Golang

一个轻量级golang ORM框架gdbcTemplate

今天介绍一个自己写的轻量级golang ORM框架gdbcTemplate, 目前支持mysql, postgresql等数据库 项目地址位于 https://github.com/guoapeng/gdbctemplate 以下摘自readme文件, 里面有示例供参考. 1. readme fil ......
轻量 轻量级 gdbcTemplate 框架 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

实现Slice的 过滤/聚合/映射 函数

一:前言 自从Golang 1.18支持泛型以来,编写泛型算法就变得方便了 下面的代码展示了如何实现Golang Slice的过滤/聚合/映射函数。代码很简单,就不多做解释了 二:函数实现 1. 过滤函数 SliceFilter 该函数会对数组的每一个元素执行filterFun,若filterFun ......
函数 Slice

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

slice简介

简介 Go语言中的切片(slice)是一种灵活的数据结构,它构建在数组之上并提供了方便的方式来操作数组的一部分。切片的底层实现涉及到数组和一些元数据。以下是Golang切片的底层实现的详细介绍: 底层数组(Underlying Array): 切片是建立在一个底层数组之上的。这个数组通常比切片的容量 ......
简介 slice

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