背景🐋 这是我学习golang的第三天,大致已经掌握了golang的语法,但是着手开发的时候,却遇到了许多问题,例如golang导包机制、golang的项目管理规范、go mod生成project怎么管理依赖的等等。其实这些概念之前也了解过,但是也只是如蜻蜓点水般的了解。正好,现在遇
分类: Go
go多版本管理
在日常开发工作过程中,很多时候我们都需要在自己的机器上安装多个go版本,像是go1.16引入的embed,go1.18引入了泛型;又或是自己本地使用的是最新版,但公司的项目中使用的go1.14、go1.13甚至是更早的版本。 那么有没有既不影响我们自己的本地环境,又能兼顾历史项目的办法呢?答案当然是
【设计模式】使用 go 语言实现简单工厂模式
最近在看《大话设计模式》,这本书通过对话形式讲解设计模式的使用场景,有兴趣的可以去看一下。 第一篇讲的是简单工厂模式,要求输入两个数和运算符号,得到运行结果。 这个需求不难,难就难在类要怎么设计,才能达到可复用、维护性强、可拓展和灵活性高。 运算符可能是加、减、乘、除,未了方便以后可以拓展其它运算符
Golang基础教程
Golang基础学习 以下使用goland的IDE演示,包含总计的golang基础功能共20个章节 一、go语言结构: 二、go基础语法: 三、变量: 四、常量: 五、运算符: 六、条件语句: 七、循环: 八、函数: 九、变量作用域: 十、数组: 十一、指针: 十二、结构体: 十三、切片: 十四、范
浅谈如何使用 github.com/yuin/gopher-lua
最近熟悉 go 项目时,发现项目中有用到 github.com/yuin/gopher-lua 这个包,之前并没有接触过,特意去看了官方文档和找了些网上的资料,特此记录下。 本次介绍计划分为两篇文章,这一次主要介绍 github.com/yuin/gopher-lua 这个包的介绍以及基础使用,下一
defer有什么用呢
1. 简介 本文将从一个资源回收问题引入,引出defer关键字,并对其进行基本介绍。接着,将详细介绍在资源回收、拦截和处理panic等相关场景下defer的使用。 进一步,介绍defer的执行顺序,以及在注册defer函数时,其参数的求值时机等相关特性。最后,重点讲解defer的注意点,如在defe
如何优雅得关闭协程呢
1.简介 本文将介绍首先为什么需要主动关闭goroutine,并介绍如何在Go语言中关闭goroutine的常见套路,包括传递终止信号和协程内部捕捉终止信号。之后,文章列举了需要主动关闭协程运行的常见场景,如启动一个协程执行一个不断重复的任务。希望通过本文的介绍,读者能够掌握如何在适当的时候关闭go
go实现在线翻译功能小项目
golang支持两种随机数生成方式: math/rand // 伪随机 crypto/rand // 真随机 math/rand的用法:rand.Intn(100)。这个起始位置是由一个seed决定的,默认是从1开始。为了尽量随机性,那么我们可以每次使用不同的seed来启动程序,就可以保证每次启动都
go相当详细的基础语法
运行命令 go run xx.go或者 go build xx.go + ./xx package main import ( "fmt" ) func main() { fmt.Println("hello world") } 基础语法 package
用go设计开发一个自己的轻量级登录库/框架吧(业务篇)
本篇将讲讲登录库中的三种登录模式的实现: 同一用户只能登录一次, 同一用户多次登录多token,同一用户多次登录共享一个token,源码:weloe/token-go: a light login library (github.com)