经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 Go语言
Go中变量命名规则与实例

Go中变量命名规则与实例

目录前言命名习惯很重要良好命名喜欢的特质经验法则大小写混用的变量名变量名避免冗余函数参数的命名返回值的命名方法 Receiver 的命名导出 package 级别变量命名接口类型error 命名Packages 名结论总结 前言 来自 Google 的 Andrew Gerrand 曾经关于 G...[2022/1/18]

beego下让swagger按照更新了controllers的接口信息自动更新commentsRouter_controllers.go

beego下让swagger按照更新了controllers的接口信息自动更新commentsRouter_controllers.go (1)在beego环境中,当更新了controllers目录下面的接口后,在swagger的web页面虽然可以看到更新后的接口,但无法正常运行,这是因为sw...[2022/1/18]

为什么要避免在 Go 中使用 ioutil.ReadAll?

为什么要避免在 Go 中使用 ioutil.ReadAll?

原文链接: 为什么要避免在 Go 中使用 ioutil.ReadAll? ioutil.ReadAll 主要的作用是从一个 io.Reader 中读取所有数据,直到结尾。 在 GitHub 上搜索 ioutil.ReadAll,类型选择 Code,语言选择 Go,一共得到了 637307...[2022/1/17]

DDIA 学习笔记

第一章 可靠性、可扩展性、可维护性 ? 可靠性: 系统在困境(adversity)(硬件故障、软件故障、人为错误)中仍可正常工作(正确完成功能,并能达到期望的性能水准。 ? 可靠性(Reliability) 意味着即使发生故障,系统也能正常工作。故障可能发生在硬件(通常是随机的和不相关的),软...[2022/1/17]

Go Error 嵌套到底是怎么实现的?

原文链接: Go Error 嵌套到底是怎么实现的? Go Error 的设计哲学是 「Errors Are Values」。 这句话应该怎么理解呢?翻译起来挺难的。不过从源码的角度来看,好像更容易理解其背后的含义。 Go Error 源码很简单,寥寥几行: src/builtin/...[2022/1/17]

Go - 如何编写 ProtoBuf 插件 (三) ?

目录前言演示代码小结推荐阅读 前言 上篇文章《Go - 如何编写 ProtoBuf 插件 (二) 》,分享了基于 自定义选项 定义了 interceptor 插件,然后在 helloworld.proto 中使用了插件,最后在 golang 代码中获取到使用的插件信息。 接上篇,继续分享。...[2022/1/17]

Excelize 2.5.0 正式发布,这些新增功能值得关注

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel? 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM ...[2022/1/3]

【CGO】C源码编译为动态库供go程序调用(linux环境、arm架构运行平台)

动态库编译 1.安装并配置交叉编译工具链 网上有详细教程 2.go env环境配置 go env -w CGO_ENABLED=1 go env -w GOOS=linux go env -w GOARCH=arm go env -w CC=...-...[2021/12/31]

如何在 Go 中将 []byte 转换为 io.Reader?

原文链接: 如何在 Go 中将 []byte 转换为 io.Reader? 在 stackoverflow 上看到一个问题,题主进行了一个网络请求,接口返回的是 []byte。如果想要将其转换成 io.Reader,需要怎么做呢? 这个问题解决起来并不复杂,简单几行代码就可以轻松将其转换...[2021/12/31]

雅可比行列式迭代及优化(golang版)

雅可比行列式迭代及优化(golang版)

最近遇到的一个求解雅可比迭代的问题,这个计算方法在 python 中有现成的库,但是在 golang 中没找到相应的实现。 于是根据雅可比行列式的推导实现了一个 golang 版本的雅可比迭代。 ? 雅可比迭代 推导 一个 \(N \times N\) 的线性方程组 。 \[Ax = b...[2021/12/31]

Golang项目的配置管理——Viper简易入门配置

Golang项目的配置管理——Viper简易入门配置 What is Viper? From:https: github.com pf13/viper Viper is a complete configuration solution for Go applications includi...[2021/12/31]

Go 的 golang.org/x/ 系列包和标准库包有什么区别?

在开发过程中可能会遇到这样的情况,有一些包是引入自不同地方的,比如: golang.org/x/net/html 和 net/html, golang.org/x/crypto 和 crypto。 那这是什么原因呢? 引用 Go 官方 Wiki 的说法: The golang.org...[2021/12/24]

GO使用socket和channel实现简单控制台聊天室

使用socket和channel,实现简单控制台聊天室 这里使用socket和channel,演示在GO中如何编写一个简单网络程序 功能分析 聊天室主要功能:用户可以加入/离开聊天室;每个用户发送的消息,广播给所有人 聊天室分为客户端和服务端,客户端负责发送消息和打印服务器消息,服务器...[2021/12/20]

Goland的那些实用技巧

1、 自定义结构体tag    2、go mod tidy / download失败   解决办法:设置goproxy            3、取消/打开代码折叠  4、左侧project栏总是展示当前打...[2021/12/20]

Go - 如何编写 ProtoBuf 插件(二)?

Go - 如何编写 ProtoBuf 插件(二)?

目录前言定义插件使用插件获取自定义选项小结推荐阅读 前言 上篇文章《Go - 如何编写 ProtoBuf 插件 (一) 》,分享了使用 proto3 的 自定义选项 可以实现插件的编写,说到基于 MethodOptions 和 ServiceOptions 选项去实现 method 和 se...[2021/12/20]

Go Micro Dashboard - 实现细节(一)

前言 Go Micro Dashboard是基于go-micro和ng-alain开发的, 它既是go-micro开发过程中的工具,也可以作为学习go-micro的实际案例。接下来我将会详细介绍一下这个项目的一些实现细节。 一、服务列表 服务的发现与注册,是分布式微服务中重要的基础模块,单个服...[2021/12/20]

基于LSM的Key-Value数据库实现初篇

前篇文章对LSM的基本原理,算法流程做了简单的介绍,这篇文章将实现一个简单的基于LSM算法的迷你Key-Value数据库,结合上篇文章的理论与本篇文章的实践使之对LSM算法有更好的理解,当然此版本还有很大问题只是Demo模型,后面也会指出; ??此LSMDB有支持常见的数据库四大功能:CURD...[2021/12/20]

Sentinel-Go 源码系列(三)滑动时间窗口算法的工程实现

Sentinel-Go 源码系列(三)滑动时间窗口算法的工程实现

要说现在工程师最重要的能力,我觉得工程能力要排第一。 就算现在大厂面试经常要手撕算法,也是更偏向考查代码工程实现的能力,之前在群里看到这样的图片,就觉得很离谱。 算法与工程实现 在 Sentinel-Go 中,一个很核心的算法是流控(限流)算法。 流控可能每个人都听过,但真要手写一个,...[2021/12/20]

Golang?strings包常用字符串操作函数

目录func Contains func HasPrefix func HasSuffix func Replace func Split func ToLower func ToUpper func Repeat func Count func Index func Join 在编写代码的时候最...[2021/12/17]

go语言处理TCP拆包/粘包的具体实现

目录part 1 part 2 part 3 part 1 最近在学习go自带的rpc,看完了一遍想着自己实现一个codec,也就是自定义消息的序列化和反序列化。消息的序列化和反序列化涉及到两步: 1、从网络中读取数据和将数据写到网络中; 2、根据拿到的二进制数据反序列化以及把现有...[2021/12/9]

go语言中五种字符串的拼接方式(小结)

目录+拼接方式 sprintf函数 Join函数 buffer.Builderbuffer.WriteString函数 buffer.Builder函数 ps:直接使用运算符 主要结论 +拼接方式 这种方式是我在写golang经常用的方式,go语言用+拼接,php使用.拼接,不过由于gol...[2021/12/9]

golang中gin框架接入jwt使用token验证身份

目录jwt 流程: 1.token 工具类 2. 使用该中间件 3. controller部分代码 jwt jwt的原理和se ion有点相像,其目的是为了解决rest api中无状态性 因为rest接口,需要权限校验。但是又不能每个请求都把用户名密码传入,因此产生了这个token的方...[2021/12/9]

Go与C语言的互操作实现

目录一、Go调用C代码的原理 二、在Go中使用C语言的类型 1、原生类型 数值类型 指针类型 字符串类型 数组类型 2、自定义类型 枚举(enum)结构体(struct)联合体(union) typedef 三、Go中访问C的变量和函数 四、C中使用Go函数 五、其他 Go有强烈的C背景,除了语法...[2021/12/9]

go gin+token(JWT)验证实现登陆验证

1.准备 go get github.com/dgrijalva/jwt-go go get github.com/gin-gonic/gin ?2.代码 package main import ( "errors" "fmt" "github.c...[2021/12/9]

使用Go HTTP客户端打造高性能服务

目录问题一:默认的 HTTP Client 问题二:默认的 Http Transport 总结 HTTP(超文本传输协议)是一种用于客户端和服务器之间传输数据的通信协议。如果想要访问服务器资源,HTTP 请求是必不可少的。Go 语言里,net/http 包附带了默认配置,我们可以适当调整便可以获得...[2021/12/9]

GO语言临界资源安全问题的深入理解

目录一、临界资源二、临界资源安全问题三、临界资源安全问题的解决四、写在最后 一、临界资源 临界资源: 指并发环境中多个进程/线程/协程共享的资源。 但是在并发编程中对临界资源的处理不当, 往往会导致数据不一致的问题。 示例代码: package main ? import...[2021/12/9]

使用Go实现TLS服务器和客户端的示例

使用Go实现TLS服务器和客户端的示例

传输层安全协议(Transport Layer Security,缩写:TLS),及其前身安全套接层(Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。 SSL包含记录层(Record Layer)和传输层,记录层协议确定了传输...[2021/12/8]

go语言生成随机数和随机字符串的实现方法

目录生成随机数 生成随机字符串 生成随机数 随机数的生成是计算机科学的一个研究领域,同时也是一种艺术。这是因为计算机是纯粹的逻辑机器,所以使用计算机生成随机数异常困难! 你可以用 math/rand 包来生成随机数。开始生成随机数之前首先需要一个种子,种子用于整个过程的初始化,它相当重...[2021/12/8]

Golang两行代码实现发送钉钉机器人消息

废话不多说, 先看代码 创建一个钉钉机器人, 必须使用加签方式 1. 安装 ding 模块包 go get -u github.com/wanghuiyt/ding 2. 普通群消息使用 使用你自己生成的Acce Token和Secret d := ding...[2021/12/8]

CMD下执行Go出现中文乱码的解决方法

CMD下执行Go出现中文乱码的解决方法

目录1、报错信息如下2、原因分析3、解决方法4、封装处理乱码方法5、解决乱码完整代码 1、报错信息如下 2、原因分析 因为Go的编码是UTF-8,而CMD的活动页是cp936(GBK),因此产生乱码。在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.ex...[2021/12/8]

Go语言实现一个简单生产者消费者模型

目录一、生产者消费者模型二、Go语言实现1、无缓冲channel2、有缓冲channel三、实际应用 简介:介绍生产者消费者模型,及go简单实现的demo。 一、生产者消费者模型 生产者消费者模型:某个模块(函数等〉负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、...[2021/12/8]

几个小技巧帮你实现Golang永久阻塞

目录使用 sync.WaitGroup 空 select 死循环 用 sync.Mutex os.Signal 空 channel 或者 nil channel 总结 参考 Go 的运行时的当前设计,假定程序员自己负责检测何时终止一个 goroutine 以及何时终止该程序。可以通过调用 os.E...[2021/12/8]

基于Go语言实现的简易api网关的示例代码

基于Go语言实现的简易api网关的示例代码

浏览器的请求去请求目标地址,然后获得结果它再发送给浏览器。对于Go语言来说,实现转发只需要简单的一行代码即可实现,如下所示: httputil.NewSingleHostReverseProxy(addre ) 基于此功能,进行简单包装,实现从远端admin管理中心获取需要...[2021/12/8]

Golang打包配置文件的实现示例

Golang打包配置文件的实现示例

目录背景 实现 工具 打包 调用 总结 众所周知,Golang 适合写 CLI 工具,但你可能还不知道 Golang 还可以打包配置文件。 背景 最近在写一个涉及到管理阿里云 ECS 的 CLI 工具,这里当然就要考虑阿里云资源使用的安全性了,要求阿里云账号的 Acce KeyId 和...[2021/12/8]

golang开发安装go-torch火焰图操作步骤

golang开发安装go-torch火焰图操作步骤

目录安装使用另一种自定义显示方式代码修改使用查看 安装     1、 安装go-torch             go get github...[2021/11/16]

golang开发及数字证书研究分享

目录私钥的生成RSAECDSADSA给私钥上锁(加访问密码)生成证书请求go对dsa类型的证书生成证书坑设置CA签名算法的选择代码时间 在go语言提供的系统包中包含了大量和数字证书有关的方法。在这些方法中就有私钥生成的方法、私钥解析的方法、证书请求生成的方法、证书生成的方法等等。通过这些方法应该能够...[2021/11/16]

Golang开发Go依赖管理工具dep安装验证实现过程

目录Go依赖管理工具环境要求目前版本安装验证初始化默认初始化优先从$GOPATH初始化Gopkg.tomlGopkg.lock常用命令dep ensuredep ensure -adddep ensure -update Go依赖管理工具 Go dependency management tool...[2021/11/16]

Golang 语言极简类型转换库cast的使用详解

目录01 介绍02 转换为字符串类型03 总结 01 介绍 在 Golang 语言项目开发中,因为 Golang 语言是强类型,所以经常会使用到类型转换。本文我们介绍类型转换三方库 - github.com pf13/cast ,它是一个极简类型转换的三方库,通过它提供的函数,可以方便我们进行类...[2021/11/15]

golang编程开发使用sort排序示例详解

golang sort package: https: tudygolang.com/article 3360 sort 操作的对象通常是一个 slice,需要满足三个基本的接口,并且能够使用整数来索引 A type, typically a collection, that ...[2021/11/15]

Go语言编程学习golang配置golint

目录下载golint打开setting对话框设置一个快捷键 下载golint 下载golang 的 lint,下载地址:https: github.com/golang/lint mkdir -p $GOPATH rc/golang.org/x/ cd $GOPATH rc/gol...[2021/11/15]

Go语言七篇入门教程六网络编程

目录1. Socket 编程1.1 Dial()函数2. HTTP 编程2.1 HTTP 客户端2.2 HTTP 服务端2.2.1 处理 HTTP 请求3. RPC 编程3.1 Go 语言中的 RPC 支持与处理3.2 Gob 简介3.3 设计优雅的 RPC 接口如何学习Go 1. Socket 编...[2021/11/9]

Go语言七篇入门教程七GC垃圾回收三色标记

目录GC如何判断一个对象是否可达 三色标记法原理如下如何学习Go GC GC全称Garbage Collection 目前主流的垃圾回收算法有两类,分别是追踪式垃圾回收算法(Tracing garbage collection)和引用计数法( Reference counting )。 而...[2021/11/9]

golang语言中wasm 环境搭建的过程详解

golang语言中wasm 环境搭建的过程详解

golang 安装 通过官方地址 下载。MacOS 也可通过 brew 快速安装: $ brew install golang $ go version go version go1.17.2 darwin/arm64 golang 环境测试 新建文件 main...[2021/11/9]

Go语言小白入门刷题打印输出沙漏

Go语言小白入门刷题打印输出沙漏

目录题解思路代码如下 题解 【PTA团体程序设计天梯赛】 L1-002 打印沙漏 (20 分) Go语言|Golang 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 *****  ***   *  ***...[2021/11/9]

Golang语言学习拿捏Go反射示例教程

目录1. 反射简介1.1 反射是什么?1.2 为什么需要反射?2. reflect包2.1 基本反射2.2 反射与指针2.3 反射与对象2.4 反射与函数2.5 反射例子3. 总结 1. 反射简介 1.1 反射是什么? Go语言提供了一种机制在运行时更新和检查变量的值、调用变量的方法和变量支...[2021/11/9]

使用Go语言解决Scan空格结束输入问题

目录问题ScanScanfScanln解决 问题 Go语言的输入Scan,无论是Scanf,还是Scanln还是其他,都是以空格结束输入的。 但是我们输入可能是带空格的。 比如 Fan One 666 Scan var msg string _,_ =fmt.Scan(&...[2021/11/9]

解析golang 标准库template的代码生成方法

curd-gen 项目 curd-gen 项目的创建本来是为了做为 illuminant 项目的一个工具,用来生成前端增删改查页面中的基本代码。 最近,随着 antd Pro v5 的升级,将项目进行了升级,现在生成的都是 ts 代码。这个项目的自动生成代码都是基于 golang 的标准库 ...[2021/11/8]

解析golang中的并发安全和锁问题

1. 并发安全 package main import ( "fmt" "sync" ) var ( sum int wg sync.WaitGroup ) func test() { for i := 0; ...[2021/11/8]

Golang通脉之类型定义

目录1、自定义类型2、类型定义2.1 定义结构体2.2 定义接口2.3 定义其他的新类型2.4 定义函数的类型3、类型别名4、类型定义和类型别名的区别5、非本地类型不能定义方法6、在结构体成员嵌入时使用别名 1、自定义类型 在Go语言中有一些基本的数据类型,如 string 、 整型 、 浮点型...[2021/10/25]

golang中接口对象的转型两种方式

golang中接口对象的转型两种方式

接口对象的转型有两种方式: 1. 方式一:instance,ok:=接口对象.(实际类型)   如果该接口对象是对应的实际类型,那么instance就是转型之后对象,ok的值为true   配合if...else if...使用 2. 方式二:   接口对象.(type)   ...[2021/10/11]

347
2
记录数:866 页数:1/1812345678910下一页尾页
加载更多
 友情链接: NPS