GO开发
灬点点
菜鸟
展开
-
go 桌面应用
go 桌面应用原创 2022-11-21 17:44:11 · 1038 阅读 · 1 评论 -
windows环境下GIN-使用air
.air.conf文件。讲解air配置实现原创 2022-09-06 09:29:55 · 461 阅读 · 0 评论 -
【go优雅关闭】实现
【go优雅关闭】实现翻译 2022-05-21 15:37:45 · 508 阅读 · 1 评论 -
go 打包支持Linux和windows
go 打包支持Linux和windows原创 2022-04-10 21:48:38 · 3168 阅读 · 0 评论 -
fiber调用算法模型tensorflow和bert
深度学习的基础是机器学习中的分散表示(distributed representation)。分散表示假定观测值是由不同因子相互作用生成。在此基础上,深度学习进一步假定这一相互作用的过程可分为多个层次,代表对观测值的多层抽象。不同的层数和层的规模可用于不同程度的抽象。深度学习运用了这分层次抽象的思想,更高层次的概念从低层次的概念学习得到。这一分层结构常常使用贪心算法逐层构建而成,并从中选取有助于机器学习的更有效的特征。不少深度学习算法都以无监督学习的形式出现,因而这些算法能被应用于其他算法无法企及的翻译 2022-02-28 18:17:04 · 295 阅读 · 0 评论 -
fiber实战mysql/es/redis/mongodb/oss
fiber实战mysql/es/redis/mongodb/ossimport ( "context" "fmt" "github.com/aliyun/aliyun-oss-go-sdk/oss" "github.com/go-redis/redis/v8" _ "github.com/gofiber/fiber/v2" "github.com/olivere/elastic/v7" "github.com/programmerug/fibergorm/entities"原创 2022-01-18 18:34:27 · 745 阅读 · 0 评论 -
fiber和mysql结合实战
fiber和mysql结合实战 //初始化数据库连接 dns := "root:123456@(localhost:3306)/test?charset=utf8mb4&parseTime=True&loc=Local" DB, err = gorm.Open(mysql.Open(dns), &gorm.Config{}) if err != nil { fmt.Println("mysql content faild, err:", err) return } return原创 2022-01-10 13:24:58 · 899 阅读 · 0 评论 -
Go并发编程(互斥锁常见问题和优化)
一、(Mutex)互斥锁原则一定要遵循“谁申请,谁释放”的原则。二、饥饿模式只需要记住,Mutex 绝不容忍一个 goroutine 被落下,永远没有机会获取锁。不抛弃不放弃是它的宗旨,而且它也尽可能地让等待较长的 goroutine 更有机会获取到锁。三、Mutex 4种错误场景第一种代码中有太多的 if-else 分支,可能在某个分支中漏写了 Unlock;在重构的时候把 Unlock 给删除了;Unlock 误写成了 Lock;第二种误用是 Copy 已使用的 Mutex;第三种翻译 2021-08-15 21:21:34 · 652 阅读 · 0 评论 -
go实现mqtt、golang实现物联网、go实现物联网MQTT、IoT
一、创建MQTT平台服务免费创建网址:https://cloud.emqx.cn/console/deployments/0?oper=new或者使用开放免费:broker: broker.emqx.ioport: 1833ClientID: go_mqtt_clientUsername: emqxPassword: public二、实现方式(支持 mqtt、mqtts、ws、wss)协议案例1:package mainimport ( "fmt" "sync" "time"原创 2021-03-02 10:15:23 · 10561 阅读 · 2 评论 -
go协程池(goroutine)、go线程池(Thread)、go连接池
一、go协程池(goroutine)注意:Go语言中的goroutine虽然相对于系统线程来说比较轻量级(初始栈大小仅2KB),但是在高并发量下的goroutine频繁创建和销毁对于性能损耗以及GC来说压力也不小package mainimport ( "errors" "fmt" "log" "sync" "sync/atomic" "time")var ( // ErrInvalidPoolCap return if pool size <= 0 ErrInvali原创 2021-02-25 15:03:38 · 5549 阅读 · 0 评论 -
go反射获取类型对象与值、go反射获取指针名称和类型、golang反射对象的空值处理、golang反射值对象修改变量的值
一、反射获取类型对象与值package mainimport ( "fmt" "reflect")func main() { a := 36 atype := reflect.TypeOf(a) fmt.Println(atype.Name()) //获取类型名称为int avalue := reflect.ValueOf(a) fmt.Println(avalue.Int()) //获取具体的数值}二、反射获取结构体类型名称与类型package mainimport原创 2021-02-23 10:47:45 · 9248 阅读 · 2 评论 -
go对大文件操作
package mainimport ( "bufio" "fmt" "io" "io/ioutil" "os" "strings")func main() { //fileClose() //fileRead() //fileReadClose() //fileBufio() //fileIoutil() //fileWrite() fileCopy()}func fileClose() { //os.Open是只读模式 fileObj, err := os.原创 2021-02-20 16:37:24 · 766 阅读 · 2 评论 -
Go图形化生成代码工具、Go微服务
一、Go微服务简介:EGO是一个集成里各种工程实践的框架。通过组件化的设计模式,保证了业务方能够统一的调用方式启动各种组件特性:配置化驱动组件屏蔽底层组件启动细节微服务组件的可观测、可治理可插拔的Ego-Component组件Fail Fast理念和错误友好提示import ( "github.com/gin-gonic/gin" "github.com/gotomicro/ego" "github.com/gotomicro/ego/core/elog" "git翻译 2021-02-18 22:39:11 · 1170 阅读 · 0 评论 -
go实现websocket案例
package mainimport ( "bytes" "fmt" "log" "net/http" "unsafe" "golang.org/x/net/websocket")func ByteToString(p *byte) string { bufs := bytes.NewBufferString("") for ps := p; *ps != byte(0); ps = (*byte)(unsafe.Pointer(1 + (uintptr)(unsafe.Poi.原创 2021-02-06 19:36:24 · 964 阅读 · 0 评论 -
go实现消息队列
一、rabbitmqpackage mainimport ( "fmt" "log" "github.com/streadway/amqp")func failOnError(err error, msg string) { if err != nil { log.Fatalf("%s: %s", msg, err) panic(fmt.Sprintf("%s: %s", msg, err)) }}func main() { conn, err := amqp.Dia原创 2021-02-05 20:42:10 · 1621 阅读 · 0 评论 -
golang 深拷贝、浅拷贝、list转string、切片 转 数组、string 转 数组、基本类型转换、反射、字符串比较、判断指针
package mainimport ( "container/list" "encoding/json" "fmt" "reflect" "strconv" "strings")type UserInfo struct { ID int64 `json:"id"` Name string `json:"name"`}func main() { fmt.Println("开始执行") // funcCopy() // funcCollection() // ty原创 2021-02-02 16:50:53 · 4032 阅读 · 0 评论 -
go对redis操作(增强操作)
package mainimport ( "fmt" "github.com/go-redis/redis")func main() { fmt.Println("创建redis连接") //创建redis连接第一种方式 rdb := redis.NewClient(&redis.Options{ Addr: "127.0.0.1:7007", Password: "123456", // no password set DB: 0,原创 2021-02-01 18:28:13 · 230 阅读 · 0 评论 -
go对mysql操作(增强操作)
package mainimport ( "container/list" "fmt" _ "github.com/go-sql-driver/mysql" "github.com/jmoiron/sqlx")type Userinfo struct { ID int64 `json:"id"` Name string `json:"name"` Phone string `json:"phone"` Address string `json:"addres原创 2021-02-01 15:38:16 · 126 阅读 · 0 评论 -
java与go对比(go与java语言区别)
Go和Java作为在世界上影响巨大的两门开发语言,在语言特点和应用领域上都存在共通和相似之处。Go从2009年开源至今,在docker、K8s、企业后台等领域都取得了非凡的影响。本文以Golang的主要feature为研究对象,共分为6个章节,在学习这些特性的同时,给出其在Java中对应的实现方式,并会详细分析其中的原理和差异。1.接口在面向对象语言中,接口是一个绕不开的话题和特性,我们首先通过一段代码来看一下Go中的接口是如何设计和使用的。go的实现代码 1、在代码中定义了两个结构体:Teac翻译 2021-01-30 21:46:47 · 27326 阅读 · 2 评论 -
go错误总结(27条)
1、undefined: apppen没有此方法,请检查语法或者单词是否正确2、m3 redeclared in this block previous declaration at .\utils.go:308:2此方法或者变量没有使用,具体在308行3、missing return at end of function此方法缺少return返回或者结束标识符4、s6 declared but not useds6变量没有使用5、err declared but not used b原创 2021-01-30 21:08:59 · 3267 阅读 · 2 评论 -
go工具包合集
1、用go编写的随机数据生成器开源地址:https://github.com/brianvoe/gofakeit实例:package mainimport ( "fmt" "github.com/brianvoe/gofakeit/v6")//主函数 程序的入口func main() { fmt.Println(gofakeit.JobTitle()) fmt.Println(gofakeit.Phone()) fmt.Println(gofakeit.原创 2021-01-22 10:57:49 · 1139 阅读 · 0 评论 -
go语言开发技巧
一、go语言开发技巧1.package 的名字和目录名一样,main 除外2.string 表示的是不可变的字符串变量,对 string 的修改是比较重的操作,基本上都需要重新申请内存,如果没有特殊需要,3需要修改时多使用 []byte3.尽量使用 strings 库操作 string,这样做可以提高性能4.append 要小心自动分配内存,append 返回的可能是新分配的地址5.如果要直接修改 map 的 value 值,则 value 只能是指针,否则要覆盖原来的值6.map 在并发中需要翻译 2021-01-01 13:01:06 · 606 阅读 · 0 评论 -
VScode开发go采坑记
1、下载go与code runner2、配置环境{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Launch", "type"翻译 2020-10-28 22:47:06 · 2550 阅读 · 0 评论 -
go gin增删改查上传文件下载文件
一、依赖module maingo 1.15require ( github.com/gin-contrib/static v0.0.0-20200916080430-d45d9a37d28e github.com/gin-gonic/gin v1.6.3 github.com/go-playground/validator/v10 v10.3.0 // indirect github.com/golang/protobuf v1.4.2 // indirect github.com/j原创 2020-09-21 23:02:21 · 1930 阅读 · 0 评论 -
GO工具、GO游戏框架、Streams
一、添加依赖库、由于go受到网络、需要配置一下参考:https://goproxy.io/zh/二、生成二维码package mainimport qrcode "github.com/skip2/go-qrcode"import "fmt"func main() { err := qrcode.WriteFile("http://www.baidu.com", qrcode.Medium, 500, "go-qrcode.png") if err != nil { fmt.Pr翻译 2020-08-09 23:42:32 · 1026 阅读 · 0 评论 -
go工具总结
一. 开发工具1)sql2go用于将 sql 语句转换为 golang 的 struct 使用 ddl 语句即可。例如对于创建表的语句: show create table xxx 将输出的语句,直接粘贴进去就行。http://stming.cn/tool/sql2go.html2)toml2go用于将编码后的 toml 文本转换问 golang 的 structhttps://xu...转载 2019-11-28 21:50:43 · 908 阅读 · 0 评论 -
go语言开箱即用
一、安装并配置环境Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.4.2.windows-amd64.msi)的安装包来安装。默认情况下.msi文件会安装在 c:\go 目录下。你可以将 c:\go\bin 目录添加到 PATH 环境变量中。添加后你需要重启命令窗口才能生效。安装包下载地址为:https://golang.org/dl/如果打不开可以使用这个...原创 2019-04-27 23:41:18 · 480 阅读 · 0 评论 -
go错误总结
1、go get -v 出现问题例如:can't load package: package .: no Go files in C:\Users\nick无法加载包:package :无可构建Go源文件解决办法1、我必须指定一个更具体的子包来安装。错误: go get github.com/garyburd/redigo正确: go get github.com/...翻译 2019-06-06 00:16:30 · 12079 阅读 · 0 评论 -
go语言学习录 (一)
一、这是go语言代码实例package mainimport "fmt"func main() { var name string fmt.Println("请输入你的名字:") fmt.Scanln(&name) fmt.Println("你好 ", name)}二、运行方式有二种go run, 编译好可执行性代码直接运行。适用于开发,调试。go build,编译...原创 2019-08-29 09:18:49 · 126 阅读 · 0 评论 -
RocksDB
RocksDB是使用C ++编写的嵌入式kv存储引擎,其键值均允许使用二进制流。由Facebook基于levelDB开发,提供向后兼容的levelDB API。RocksDB针对Flash存储进行优化,延迟极小.RocksDB使用LSM存储引擎,纯C ++编写.Java版本RocksJava正在开发中。参见RocksJavaBasic。RocksDB依靠大量灵活的配置,使之能针对不同的生产环境...原创 2019-09-01 20:10:17 · 1472 阅读 · 0 评论 -
go 案例
package mainimport “fmt”import “time”//go 异步c := make(chan string) //channel fix := func(man string) { fmt.Println(man + "1") fmt.Println(man + "2") c <- man + "ok"} fmt.Println...原创 2019-09-15 21:27:39 · 357 阅读 · 0 评论 -
go与redis案例
一、配置环境变量1、表示go语言依赖环境的目录、其实go有一个默认地址、也可以使用默认地址2、表示go语言安装目录上图所示、将go-redis通过git下载放入目录的地方。$ git clone https://github.com/go-redis/redis.git目的为了解决二、运行go案例package main import ( "fmt" ...翻译 2019-09-15 22:46:24 · 522 阅读 · 0 评论 -
go工具类
1、解决go的第三方库依赖或者通过go get github.com/hyper-carrot/go_lib/logging由于国家不允许进行翻墙,大部分情况无法下载,或者通过翻墙进行下载,但是还有一种比较笨的方法,自己进入github网址进行拉取第三方库。2、首先进行配置环境查找GOPATH的地址。3、找到目录如图所示:go get命令会将项目下的所有子目录和源码文件存放到第一个工作区...原创 2019-09-26 16:35:18 · 906 阅读 · 0 评论 -
go实现HTTP3
一、首先什么是HTTP3?虽然 HTTP/2 解决了很多之前旧版本的问题,但是它还是存在一个巨大的问题,主要是底层支撑的 TCP 协议造成的。上文提到 HTTP/2 使用了多路复用,一般来说同一域名下只需要使用一个 TCP 连接。但当这个连接中出现了丢包的情况,那就会导致 HTTP/2 的表现情况反倒不如 HTTP/1 了。因为在出现丢包的情况下,整个 TCP 都要开始等待重传,也就导致了后...原创 2019-10-10 22:52:49 · 4799 阅读 · 1 评论 -
go语言能做什么
一、执行性能缩短API的响应时长,解决批量请求访问超时的问题。在Uwork的业务场景下,一次API批量请求,往往会涉及对另外接口服务的多次调用,而在之前的PHP实现模式下,要做到并行调用是非常困难的,串行处理却不能从根本上提高处理性能。而GO语言不一样,通过协程可以方便的实现API的并行处理,达到处理效率的最大化。 依赖Golang的高性能HTTP Server,提升系统吞吐能力,由PHP的数百...转载 2019-04-07 09:54:59 · 10995 阅读 · 0 评论