[Golang/CGO]
[Golang/CGO]
学生董格
I go to java and saw a python eating biscuits (c#), grass (c++), Ruby (c), ah (R), groovy!
展开
-
[Golang实战]github.io部署个人博客hugo[新手开箱可用][小白教程]
配置环境变量:此电脑->属性->高级系统设置->环境变量->系统变量->Path->编辑->新建->D:\hugo。需要申请两个github的项目仓库:包括一个github.io的项目,一个hugo的项目。把themes\LoveIt\exampleSite的覆盖到myBlog中。把2.1中public的文件放入到xxxx.github.io中,并且上传。解压到D:\hugo。获取到public的文件夹2.2中使用。访问xxxx.github.io如图。到Hugo官方GitHub仓库。原创 2023-02-21 12:11:24 · 1853 阅读 · 0 评论 -
[Golang实战]如何快速接入chatgpt/openai?[引入go-gpt3][新手开箱可用]
ChatGPT-OpenAI注册使用保姆级教程?[开箱可用][免费使用]先看官网推荐的项目。原创 2023-02-10 11:51:09 · 9103 阅读 · 6 评论 -
[Golang实战]整理Golang忽略的问题
我们会发现,无论子Goroutine是因为 panic()异常退出,还是Goexit()退出,都会被主Goroutine监听到并且重启。大家不用担心,我们用Go开发实际上是基于Go的调度器来开发的,进程、线程级别的死亡,会导致调度器死亡,那么我们的全部基础框架都将会塌陷。所以有new这个内置函数,可以给我们分配一块内存让我们使用,但是现实的编码中,它是不常用的。GoV1.5- 三色标记法, 堆空间启动写屏障,栈空间不启动,全部扫描之后,需要重新扫描一次栈(需要STW),效率普通。原创 2023-02-01 16:19:45 · 705 阅读 · 0 评论 -
[Go实战]agouti+ginkgo+gomega
daemonagouti_ginkgo_gomega_gin安装步骤1.go get github.com/sclevine/agouti2.go get github.com/onsi/ginkgo/ginkgo3.go get github.com/onsi/gomega4.brew tap homebrew/cask5.brew cask install chro...原创 2019-08-23 17:31:59 · 734 阅读 · 0 评论 -
[Go实战]gorm和pg的common数据库配置
第一步在init方法中配置数据库第二步运行main方法即可出现结果package mainimport ( "fmt" "github.com/go-pg/pg" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/postgres" "time")var dbConfig DatabaseConfi...原创 2019-05-13 15:39:28 · 2366 阅读 · 3 评论 -
[Go实战]gorm 处理复杂json对象的存储和管理
package mainimport ( "encoding/json" "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/postgres" "github.com/pkg/errors")// 商品type Product struct { Id int `gorm:"...原创 2019-07-11 15:08:33 · 9807 阅读 · 2 评论 -
[Go实战]闭包实际使用
package mainimport "fmt"func main() { //闭包使用1 Closure.test() //闭包使用2 NewClosureService(&ClosureParameter{ ParamFirst: 2, }).test()}var Closure = &ClosureService{}type ClosureS...原创 2019-06-19 17:38:25 · 534 阅读 · 0 评论 -
[Go实战]定时任务go-cron
cron举例说明每隔5秒执行一次:*/5 * * * * ?每隔1分钟执行一次:0 */1 * * * ?每天23点执行一次:0 0 23 * * ?每天凌晨1点执行一次:0 0 1 * * ?每月1号凌晨1点执行一次:0 0 1 1 * ?在26分、29分、33分执行一次:0 26,29,33 * * * ?每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,...原创 2019-06-10 16:23:09 · 1515 阅读 · 0 评论 -
[Go实战]go-modules vgo --goland
goland解决go downloading ......原创 2019-08-23 16:26:45 · 507 阅读 · 0 评论 -
[Go实战]mac-homebrew 安装go
使用 homebrew 安装 Go安装brew install go设置 GOPATH & binecho 'export GOPATH=$HOME/Go' >> ~/.bash_profileecho 'export PATH=$PATH:$GOPATH/bin' >> ~/.bash_profilesource ~/.bash_profil...原创 2019-09-11 10:37:13 · 1154 阅读 · 1 评论 -
[Go实战][Redis实战]go-redis,最简单的增删改查还有json
首先你要一个redis第二件事package mainimport ( "encoding/json" "fmt" "github.com/garyburd/redigo/redis")func main() { c, err := redis.Dial("tcp", "127.0.0.1:6379") if err != nil { fmt.Println("C...原创 2019-04-08 21:28:07 · 1107 阅读 · 0 评论 -
[Go实战]golang-assert开源工具包
go get "github.com/stretchr/testify/assert"package mainimport ( "github.com/stretchr/testify/assert" "testing")func TestSomething(t *testing.T) { assertError(t) assertNil(t) a := "Hell...原创 2019-12-06 15:03:45 · 2351 阅读 · 0 评论 -
[Go实战]cache2go 缓存介绍
To install cache2go, simply run:go get github.com/muesli/cache2gopackage mainimport ( "fmt" "time" "github.com/muesli/cache2go")// Keys & values in cache2go can be of arbitrary type...原创 2019-12-04 18:03:37 · 930 阅读 · 0 评论 -
[Go实战]go-map接收sql查询结果[可扩展任意数据库][mysql]
golang map接收sql查询结果[可扩展任意数据库][mysql]背景golang内置对象sql.RawBytes我的代码:运行结果:github:背景在重写c++程序时遇到这种特殊的情况,c++的mysql会把所有的sql直接执行,返回fields和rowAffected,为了在golang中也实现这个,我想了一种办法mysql+gogolang内置对象sql.RawBytessql.RawBytes是一个[]bytegithub.com/go-sql-driver/mysql 使用了原创 2021-10-21 11:01:30 · 1669 阅读 · 0 评论 -
[Go实战]如何使用go-pprof
如何使用pprof1.引用pprof2.启动一个runtime3.启动main && 执行如下命令:4.安装graphviz5.查看保存的pprof文件 && 调优:如何使用pprof1.引用pprof_ "net/http/pprof"2.启动一个runtimehttp.ListenAndServe(":10000", nil)3.启动main && 执行如下命令:http监控: go t..原创 2021-11-01 10:46:18 · 668 阅读 · 0 评论 -
[Go实战]ambiguous import: found github.com/ugorji/go/codec in multiple modules:......
报错的字面意思是有一个包多个地方引用但版本不一致。网上查询找到解决方法,详见https://github.com/ugorji/go/issues/279。1.1.2版本修复了该问题这时需要运行以下命令:go get github.com/ugorji/go@v1.1.2...原创 2019-08-01 14:40:32 · 7908 阅读 · 0 评论 -
[Go实战][Unity实战]Golang+Unity(Socket链接测试)
Golang服务端:package mainimport ( "fmt" "log" "math/rand" "net" "os" "strconv")func main() { //建立socket,监听端口 第一步:绑定端口 //netListen, err := net.Listen("tcp", "localhost:1024") netListen, err := net.Listen("tcp", "192.168.26.142:9800") CheckE原创 2021-03-30 13:47:27 · 1129 阅读 · 0 评论 -
[Go实战]interface用法
package mainimport ( "fmt")func main() { NewWork(true).do() NewWork(false).do()}type Work interface { do()}func NewWork(isEmployee bool) Work{ if isEmployee{ return &Employee{}...原创 2020-01-16 14:31:13 · 434 阅读 · 0 评论 -
[Go实战]怎么写测试类,运用testing.T
1. 命名时一定要有test字眼,例如dong_test.go2.如下 包名可以是其他,不一定要mainpackage mainimport ( "testing")func TestHelloWorld(t *testing.T) { t.Log("HelloWorld")}...原创 2019-05-22 18:47:09 · 3863 阅读 · 0 评论 -
[Go实战]go-linq开源插件 遍历循环专用
go get"github.com/ahmetb/go-linq/v3"package mainimport ( "fmt" "time" "github.com/ahmetb/go-linq/v3")func main() { var ids []int for i := 1; i < 150000; i++ { ids = append(ids, i)...原创 2019-12-04 18:16:33 · 1121 阅读 · 0 评论 -
[Go实战]mac-goland点不出类或方法.
今天突然发现goland点不出类或方法了解决思路1:重装解决思路2:把power save mode 关了就好了原创 2019-06-05 14:46:38 · 3071 阅读 · 1 评论 -
[Go实战]gin框架支持的简单上传下载读取csv等文件
1.运行main函数2.尝试上传 下载package mainimport ( "bufio" "encoding/csv" "fmt" "github.com/gin-gonic/gin" "io" "net/http" "os")const ( SR_File_Max_Bytes = 1024 * 1024 * 2)func main() { r...原创 2019-05-13 17:16:05 · 11353 阅读 · 0 评论 -
[Go实战]配置插件推荐goland - File Watchers
首先,得保证安装了一个叫做”File Watchers”的插件,并设置为启用状态:然后,直接在Tools -> File Watchers中,添加如下设置:可以添加的除了go fmt,goimports之外,还有fometaliner,用来在保存代码时,对代码作语法检查,非常方便。除此之外,还允许对每个wather的行为进行详细设置,这里就不多介绍了。...原创 2019-05-21 18:09:29 · 20700 阅读 · 1 评论 -
[Go实战]goFrame框架初次使用
GF(Go Frame)是一款模块化、松耦合、生产级的Go应用开发框架。提供了常用的核心开发组件,如:缓存、日志、文件、时间、队列、数组、集合、字符串、定时器、命令行、文件锁、内存锁、对象池、连接池、数据校验、数据编码、文件监控、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信、 并发安全容器等等。并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、路由...原创 2019-06-12 10:35:46 · 8930 阅读 · 0 评论 -
[Go实战]gorm的坑很多,无限填坑中error pq: got 6 parameters but the statement requires 5
0.特殊情况error pq: got 6 parameters but the statement requires 5解决 sql肯定有问题,把sql.log(true)打开,一句句过1.建表语句type ExportOpt struct { ProductId int Name string}ds.Gorm().Debug().AutoMig...原创 2019-04-16 14:15:08 · 2435 阅读 · 0 评论 -
[Go实战]手写一个简单的EventDispatcher事件注册机制
手写一个简单的EventDispatcher [Golang] 事件注册机制背景核心代码地址运行结果背景项目中用到了eventDispatcher,但是golang没有,所以1V1借助laya的思想写了一个golang的版本核心代码RegisterEvent/RemoveEvent/DispatchEvent// DispatchEventfunc (p *_EventManager) DispatchEvent(tp string, args interface{}) { if f, ok原创 2021-09-18 17:53:02 · 443 阅读 · 0 评论 -
[Go实战]Goland:could not launch process: decoding dwarf section info at offset 0x0: too short
第一次用goland,因为之前喜欢JetBrains全家桶然后我安装的Go版本goland版本debug出问题解决方案cmd执行以下语句:go get -u github.com/derekparker/delve/cmd/dlv然后在本地找到这个文件C:\Users\你的用户名\go\bin\dlv.exe复制一下放到golang中...原创 2019-03-07 19:29:36 · 750 阅读 · 0 评论 -
[Go实战]一个简易的相对完整的go工程项目: cobra、 gin、 viper、 cron、 toml、 grpc、 postgres、 gorm、 pg、 uuid、 jwt-go
简介本项目集成了如下开源工具包: cobra、 gin、 viper、 cron、 toml、 grpc、 postgres、 gorm、 pg、 uuid、 jwt-go ......设置proxyexport GO111MODULE=onexport GOPROXY=https://goproxy.io项目地址:https://github.com/zld1261...原创 2019-08-02 14:28:06 · 1196 阅读 · 0 评论 -
[Go实战]go-gorm的预加载 preload或related方法使用场景
特殊说明:gorm官方文档对foreign key 有这么一句话:To define a belongs to relationship, the foreign key must exists, default foreign key uses owner’s type name plus its primary key(要定义属于关系,外键必须存在,默认外键使用所有者的类型名及其主键)也就...原创 2019-07-11 14:18:38 · 21036 阅读 · 1 评论 -
[Go实战]gin+grpc
参考:http://doc.oschina.net/grpc?t=60133https://github.com/grpc/grpc-go安装protobuf1.brew install protobuf2.protoc --version安装grpc1.go get google.golang.org/grpc2.go get github.com/...原创 2019-07-31 17:47:50 · 2883 阅读 · 0 评论 -
[Go实战]go写一个简单的内存容器 解决表单重复提交等重复问题
package mainimport ( "fmt" "time")func main() { t1 := newMemory("dongtech") t1.Put("haha") t1.Put("lala") t1.Put("haha") t1.Get() t1.Length() time.Sleep(time.Second * 4) fmt.Println(ti...原创 2019-06-21 16:46:36 · 1554 阅读 · 0 评论 -
[Go实战]调用DLL库[开箱可用][支持指针传参]
Golang 调用DLL库[开箱可用][支持指针传参]1.环境2.运行3.编译4.指针传参(回参) (推荐回调函数使用)5.github地址6.issue1.环境vs2013+go1.13x86dll文件2.运行go_dll.exe3.编译vs2013: 重新生成解决方案 \cpp_dll\Debug\cpp_dll.dllgoland: Mac: CGO_ENABLED=1 GOOS=windows GOARCH=386 go build ma原创 2021-10-08 17:51:30 · 6487 阅读 · 5 评论 -
[Go实战]go原生库简单合成一张图
需求,将背景图和二维码图合成一张图片1.准备两张图300*300的图256*256的图2.准备功能方法package mainimport ( "image" "image/draw" "image/jpeg" "image/png" "os")func main() { //简单合成图 createImg()}func createIm...原创 2019-06-06 10:03:09 · 1532 阅读 · 0 评论 -
[Go实战]go集成gin+swagger自动生成文档
1、安装 swaggo get github.com/swaggo/swag/cmd/swagswag 用于生成 docs 文件夹(swagger文档程序使用)安装完成后会在 ${GOPATH}/bin生成一个执行文件2、安装依赖包github.com/gin-gonic/gingithub.com/swaggo/gin-swagger3、测试代码/** ...原创 2019-06-10 16:57:36 · 6473 阅读 · 0 评论 -
[Go实战]go获取全局唯一订单号,普通做法和redis做法
package mainimport ( "fmt" "math/rand" "time")func GetTimeTick64() int64 { return time.Now().UnixNano() / 1e6}func GetTimeTick32() int32{ return int32(time.Now().Unix())}func GetForma...原创 2021-10-27 10:30:10 · 3719 阅读 · 0 评论 -
[Go实战]go工具类Utils常用时间转换,字符串去重合并,数组去重合并等等,基本都有了够用了
最近总结了一组常用的util类package mainimport ( "fmt" mapset "github.com/deckarep/golang-set" "github.com/pkg/errors" "strings" "time")func main() { testUtil()}func testUtil() { a := []int{1, 2,...原创 2019-06-12 16:19:41 · 2906 阅读 · 0 评论 -
[Go实战]go get失败解决方案,推荐解决方案
这个极简主义项目,你可以在现有的任意 Web 服务中轻松地引入 Go 模块代理支持,要知道 Goproxy.cn 就是基于它搭建的。你的代码永远只属于你自己,因此我们向你提供目前世界上最炫酷的自托管 Go 模块代理搭建方案。如果您使用的是老版本的 Go(< 1.13), 我们建议您。就这么简单,一个功能完备的 Go 模块代理就搭建成功了。命令将从公共代理镜像中快速拉取您所需的依赖代码了。,你所需要做的只是多添加一条路由而已。结合着你钟爱的 Web 框架一起使用,比如。设置完上面几个环境变量后,您的。原创 2019-04-17 16:36:28 · 3051 阅读 · 0 评论 -
[Go实战]go使用github.com/deckarep/golang-set作为不可重复集合
package mainimport ( "fmt" mapset "github.com/deckarep/golang-set")func main() { //mapset 不可重复集合 ids := mapset.NewSet() ids.Add(1) ids.Add(1) ids.Add(2) ids.Add(3) fmt.Println(ids)}...原创 2019-06-12 10:30:42 · 2472 阅读 · 0 评论 -
[Go实战]gin整合[go-assets][vfsgen][docker]完整打包方案
突然想到golang 打包只有一个文件.sh或.exe 无法把文件夹打包进入所以有些静态资源如html或者css/jpg等文件无法处理专门找到的解决这两类文件的方案1.解决html加载的开源工具:github.com/jessevdk/go-assets2.解决js/css/image等静态资源的开源工具:github.com/shurcooL/vfsgen案例如下:1.html加载自动生成的go文件代码部分(gin):// 执行命令: ...原创 2021-06-23 16:27:31 · 1887 阅读 · 3 评论 -
[Go实战]一个简单的主进程不退出(阻塞方法) 测试方案
记录一个简单的go主进程不退出的方法核心代码package mainimport ( "fmt" "os")func main() { fmt.Println("test1 ...") block()}// go主进程 不退出func block(){ b := make([]byte, 1) os.Stdin.Read(b)}运行原创 2021-09-28 14:41:12 · 2720 阅读 · 0 评论