经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
 Go语言

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验证身份

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代码的原理 二、在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语言临界资源安全问题的深入理解

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出现中文乱码的解决方法

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

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

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语言来说,实现转发只需要简单的一行代码即可实现,如下所示: httputil.NewSingleHostReverseProxy(addre ) 基于此功能,进行简单包装,实现从远端admin管理中心获取需要...[2021/12/8]

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

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

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

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中的并发安全和锁问题

解析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]

Go语言的接口详解

目录1、接口的用途2、类型断言3、类型选择4、空接口5、匿名空接口6、实现多个接口7、接口嵌套8、接口零值9、make和new的区别总结 接口就是一系列方法的集合(规范行为) 在面向对象的领域里,接口一般这样定义:接口定义一个对象的行为,规范子类对象的行为。 在 Go 语言中的接口是非侵入式...[2021/10/11]

Go语言并发编程之互斥锁Mutex和读写锁RWMutex

目录一、互斥锁Mutex1、Mutex介绍2、Mutex使用实例二、读写锁RWMutex1、RWMutex介绍2、RWMutex使用实例 在并发编程中,多个Goroutine访问同一块内存资源时可能会出现竞态条件,我们需要在临界区中使用适当的同步操作来以避免竞态条件。Go 语言中提供了很多同步工具,...[2021/10/8]

Go语言--切片(Slice)详解

目录一、定义切片1、声明一个未指定大小的数组来定义切片2、使用make()函数来创建切片二、切片是可索引的1、len() 和 cap() 函数三、切片截取四、增加切片的容量 说明: Go 语言切片是对数组的抽象。 Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一...[2021/10/8]

Go 泛型和非泛型代码详解

目录1. 开启泛型2.无泛型代码和泛型代码2.1. AddSlice2.2. 带方法的约束 StringConstraint 1. 开启泛型 在 Go1.17 版本中,可以通过: export GOFLAGS="-gcflags=-G=3" 或者在编译运行程序时加上...[2021/10/8]

Go 语言中的死锁问题解决

目录死锁 如何避免死锁死锁代码 死锁 死锁的4个条件 不可剥夺 线程已经获得的资源,在未使用完之前,不能被其他线程剥夺,只能在使用完后自己释放。 请求保持 线程 T1 保持了一个资源 R1 占用,但是又提出另外一个资源 R2 请求,此时,资源 R...[2021/8/26]

Go语言实现Base64、Base58编码与解码

目录1. 常见的编码 2. go语言实现base64的编码与解码 2.1 Base64编码原理 2.2 实现Base64的编码与解码 3. go语言实现base58编码与解码 3.1 base58的编码过程3.2 base58编解码具体实现 4. 最后 1. 常见的编码 base64:26个...[2021/7/26]

Go语言死锁与goroutine泄露问题的解决

Go语言死锁与goroutine泄露问题的解决

目录什么时候会导致死锁 发送单个值时的死锁 多个值发送的死锁 解决多值发送死锁 应该先发送还是先接收 goroutine 泄漏 如何发现泄露 小结 什么时候会导致死锁 在计算机组成原理里说过 死锁有三个必要条件他们分别是 循环等待、资源共享、非抢占式,在并发中出现通道死锁只有两种情况: ...[2021/7/26]

浅析golang开发Error的使用详解

Error是Go语言开发中最基础也是最重要的部分,跟其他语言的try catch的作用基本一致,想想在PHP JAVA开发中,try catch 不会使用,或者使用不灵活,就无法感知到程序运行中出现了什么错误,是特别可怕的一件事。 Error 基础 Golang中 error类型就是一个最基...[2021/7/21]

Mac下Vs code配置Go语言环境的详细过程

Mac下Vs code配置Go语言环境的详细过程

背景:最近受朋友介绍,学习Go语言。那么开始吧,首先从配置环境开始。 电脑:Mac Air,Vs code已经安装 一、Go下载和安装 下载地址:https: golang.google.cn/dl/ Mac版选择pkg,下载就可以直接安装了。其他类似操作,具体也可查找相关信息 二...[2021/7/19]

简单聊一聊Go语言中的数组和切片

目录1. 数组 2. 切片(Slice) append 函数 总结 1. 数组 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,因此在 Go 语言中很少直接使用数组。和数组对应的类型是 Slice(切片),它是可以增长和收缩的动态序列,...[2021/7/19]

Go并发控制WaitGroup的使用场景分析

1. 前言 上一篇介绍了 Go并发控制--Channel 使用channel来控制子协程的优点是实现简单,缺点是当需要大量创建协程时就需要有相同数量的channel,而且对于子协程继续派生出来的协程不方便控制。 2. 使用WaitGroup控制 WaitGroup,可理解为Wait-G...[2021/7/12]

Go并发控制Channel使用场景分析

1. 前言 channel一个类型管道,通过它可以在goroutine之间发送和接收消息。它是Golang在语言层面提供的goroutine间的通信方式。 Channel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communicatio...[2021/7/12]

Go 语言结构实例分析

当前的调试部分可以使用 go run filename.go 来执行。 可以生成一个 build.sh 脚本,用于在指定位置产生已编译好的 可执文件: #!/usr/bin/env bash CURRENT_DIR=`pwd` OLD_GO_PATH="$GOPATH" ...[2021/7/5]

Go语言空白表示符_的实例用法

在GO语言中,导入了包,却不在代码中使用它,是非法的。当这么做时,编译器是会报错的。其原因是为了避免导入过多未使用的包,从而导致编译时间显著增加。如下代码: package main import ( "geometry/rectangle" 导入自定的包 ) ...[2021/7/5]

golang fmt格式“占位符”的实例用法详解

golang fmt格式“占位符”的实例用法详解

golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。 # 定义示例类型和变量 type Human struct { Name string } var people = Human{Name:"zhangsan"} ...[2021/7/5]

golang中字符串MD5生成方式总结

方案一 func md5V(str string) string { h := md5.New() h.Write([]byte(str)) return hex.EncodeToString(h.Sum(nil)) } 方案二 fun...[2021/7/5]

go select编译期的优化处理逻辑使用场景分析

go select编译期的优化处理逻辑使用场景分析

前言 select作为Go chan通信的重要监听工具,有着很广泛的使用场景。select的使用主要是搭配通信case使用,表面上看,只是简单的select及case搭配,实际上根据case的数量及类型,在编译时select会进行优化处理,根据不同的情况调用不同的底层逻辑。 select的编译...[2021/6/28]

深入理解 sync.Once 与 sync.Pool

深入理解 sync.Once 与 sync.Pool sync.Once 代表在这个对象下在这个示例下多次执行能保证只会执行一次操作。 var once sync.Once for i:=0; i < 10; i++ { once.Do(func(){ fmt.Println("e...[2021/6/28]

347
7
记录数:1098 页数:6/22首页上一页12345678910下一页尾页
 友情链接:直通硅谷  点职佳  北美留学生论坛
加载更多

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号