GOLANG
golang
Lubin技术分享
每多学一点知识,就可以少写几行代码。
展开
-
gorm新增数据时区不正确
gorm新增数据时区不正确。总是少8小时。发现原来是dsn没有写上 loc=Local导致。db: testTable: '***:***@tcp(127.0.0.1:3306)/dbName?&loc=Local&charset=utf8mb4,utf8&readTimeout=2s&timeout=2s&writeTimeout=2s'原创 2021-06-21 23:04:26 · 1277 阅读 · 0 评论 -
因使用fasthttp(golang)再次遇到跨域问题的解决过程纪录,方法适用于其它后端语言。
时隔多年,业务开发需要与前端合作,而再次遇到跨域问题。这次不打算直接网上搬运解决代码,而是要搞清楚原理。(事实上这次也找不到合适的源码)。由于历史原因,项目使用的不是原生的fasthttp,而是被封装过的一个中间件: "github.com/qiangxue/fasthttp-routing"在里面搜索了一段解决跨域的解决,然后无果:// https://github.com/qiangxue/fasthttp-routing/issues/6![在这里插入图片描述](https://img-原创 2021-06-07 23:53:20 · 907 阅读 · 0 评论 -
golang的list
golang 的list 可以用做链表、队列、栈。下面分享一段自己用list实现的代码。其作用是:实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。这也是leecode的一道题:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-iii-lcof/package mainimport ( "containe原创 2021-01-09 01:06:15 · 837 阅读 · 0 评论 -
Golang GMP 学习笔记:当P的本地队列为空时,M先从全局队列拿G放到P的本地队列,再从其它P窃取
今天看 studygolang.com 一篇讲解 GMP 的文章时,对一个细节有疑问。线程想运行任务就得获取P,从P的本地队列获取G,P队列为空时,M也会尝试从全局队列拿一批G放到P的本地队列,或从其他P的本地队列偷一半放到自己P的本地队列。M运行G,G执行之后,M会从P获取下一个G,不断重复下去。那当P队列为空时,M是先从全局队列拿G放到P的本地队列,还是先从其它P窃取?通过查阅相关资料,发现《Go专家编程》一书也没有明确说明。里面有一句话:GO调度器提供了工作量窃取策略,即当某个处理器P原创 2021-01-07 22:48:35 · 1602 阅读 · 0 评论 -
golang如何交换两个变量的值
在go之前的编程语言中,如果要交换变量的值,需要借助一个临时变量来实现。如下伪代码:变量三 = 变量一变量一 = 变量二变量二 = 变量三go语言提供了多重赋值的特性可以轻松实现变量的交换。如下伪代码:变量一,变量二 := 变量二,变量一真实代码为:var a = 1var b = 2a,b = b,a ...原创 2021-01-07 19:20:23 · 2497 阅读 · 0 评论 -
如何在mac下将go程序编译为linux和windows可运行二进制程序文件
# 以下命令可以在linux下运行,我试用的是centos7CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build# 以下命令可以在windows下运行,我试用的是win10CGO_ENABLED=0 GOOS=windows go build原创 2020-12-31 15:41:33 · 1200 阅读 · 0 评论 -
纪录一次问题处理与解决 go tool no such tool compile
1 发生问题在安装gf的时候:go get -u -v github.com/gogf/gf终端报错:go tool: no such tool "compile"2 排查问题使用命令:go env|grep GOTOOLDIR终端输出:/root/go/pkg/tool/linux_amd64确实,系统下没有 /root/go/pkg 这个目录于是再检查一下 GOROOT 和 GOPATH 。发现 GOROOT 是:/root/go再使用命令查找:find / -na原创 2020-05-14 16:46:22 · 3860 阅读 · 3 评论 -
golang-missing dot in first path element when
今天初始化好的虚拟机上一直报各种 go 异常:missing dot in first path element when……结果发现是因为 GOROOT 和 GOPATH 搞反了原创 2020-04-22 16:18:08 · 8808 阅读 · 0 评论 -
Golang如何给变量赋值
package mainimport "fmt"func main(){ //如果对一个变量已经赋值,那前面的变量类型可写可不写,因为可以自动推导出来。 var a = "apple" var b = 0 var c = int32(1) var d = int64(1) var e = 1.2 var f = []int{1} fmt.Println(a, b, c, d, e, f)}输出结果:apple 0 1 1 1.2 [1]...原创 2020-12-26 15:35:05 · 807 阅读 · 0 评论 -
一个让PHP程序员快速转为Go程序员的项目 https://github.com/yioio/fun
https://github.com/yioio/fun欢迎有兴趣的朋友一起玩这个项目用 PHP 的函数名,但是实现是使用 golang 代码。也照顾了 golang 中的 interface{}的一些特点。和其它项目不同的是。这个项目的 package 没有使用 php 命名。文件分类也按照功能领域新建文件夹。最重要的是每一个对外提供的方法都写了 goconvey 单元测试代码,更可靠更...原创 2019-02-18 22:45:42 · 1122 阅读 · 0 评论