随笔分类 -  GoLang

摘要:问题描述 循环创建新协程,发现每次使用的循环变量都一样,都是最后一个 package main import ( "fmt" "time" ) func main() { type Student struct { Name string Age int } studentList := []*St 阅读全文
posted @ 2022-09-15 20:29 Lucky小黄人^_^ 阅读(488) 评论(0) 推荐(0)
摘要:有时我们可能想既在外层循环中实现多协程并发,还想在内层循环中实现多协程并发,那么我们需要同时在内层和外层使用 WaitGroup() 来控制主协程不退出。 下面是一个 demo: 博客平台纯手敲,可能存在字符拼写错误 import ( "fmt" "sync" ) func handleTask() 阅读全文
posted @ 2022-09-15 14:15 Lucky小黄人^_^ 阅读(171) 评论(0) 推荐(0)
摘要:发现问题 今天好好的项目突然就好多依赖标红了,go.mod 也全是红的,但是执行 go mod tidy 和 sh build.sh 都没有问题,但是看到标红就浑身难受,自己捣鼓了一通,发现没啥用,最后发现了 cannot resolve directory 'gocarina' 这个报错,抱着死马 阅读全文
posted @ 2022-09-14 22:39 Lucky小黄人^_^ 阅读(758) 评论(0) 推荐(0)
摘要:有时我们想在自己的服务里单独弄一个定时器,但是又不想让定时器的定时任务成为主线程,而是作为 http 服务或者 rpc 服务的一个子线程来执行任务。 一、定时器 NewTicker 1、第一种写法 package main import ( "time" "fmt" ) func printDemo 阅读全文
posted @ 2022-09-14 14:10 Lucky小黄人^_^ 阅读(1261) 评论(0) 推荐(0)
摘要:Goland 升级到 2022 版本后,会在文件保存时自动化格式化代码,由于其他开发场景需要,我配置了每秒钟自动保存一次,导致新版 Goland 每秒钟都会帮我格式化代码一次,经常发生这两种情况: 1、 我写代码一半回车后自动帮我删除空行、 2、我在编码引用其他包的函数时,我还在用上下键选择想要的函 阅读全文
posted @ 2022-08-29 13:25 Lucky小黄人^_^ 阅读(4500) 评论(0) 推荐(0)
摘要:转自:goland 界面变成中文 修改回英文界面 新版本会自动装中文插件 主界面 文件->设置 打开 设置对话框 点击 插件 选择已安装 取消勾选 中文插件 确定 重新启动即可 恢复到原始的英文界面 阅读全文
posted @ 2022-08-24 14:53 Lucky小黄人^_^ 阅读(1183) 评论(0) 推荐(0)
摘要:转自:Go 每日一库之 sjson 简介 在上一篇文章中我们介绍了如何使用gjson快速读取 JSON 串中的值。为了内容的完整性,今天我们介绍一下如何使用sjson快速设置 JSON 串中的值。 快速使用 先安装: $ go get github.com/tidwall/sjson 使用: pac 阅读全文
posted @ 2022-08-22 00:01 Lucky小黄人^_^ 阅读(158) 评论(0) 推荐(0)
摘要:From Size 方式分页查询 demo func TestESQueryDemo(client *elastic.Client) { // ES SDK 教程:https://www.yisu.com/zixun/694102.html query := elastic.NewBoolQuery 阅读全文
posted @ 2022-08-21 23:34 Lucky小黄人^_^ 阅读(1865) 评论(0) 推荐(0)
摘要:goland 打开一个项目时突然不显示文件夹了,只显示某个路径下的所有文件;或者某个包明明能 import 但就是 import 不进来,提示Unresolved reference 解决方案都是删除项目根目录的 .idea 文件夹,然后重启 Goland 某个包(比如encoding/json包) 阅读全文
posted @ 2022-08-21 22:45 Lucky小黄人^_^ 阅读(792) 评论(0) 推荐(0)
摘要:方法一:用两个通道 + A协程sleep 一个通道用来传数据,一个用来传停止信号。 package main import ( "fmt" "time" ) // 老师视频里的生产者消费者 func main() { //知识点: 老师这里用了两个线程,一个用个传数据,一个用来传关闭信号 messa 阅读全文
posted @ 2022-08-15 11:12 Lucky小黄人^_^ 阅读(572) 评论(0) 推荐(0)
摘要:Go 实现超时退出 之前手写rpc框架的时候,吃多了网络超时处理的苦,今天偶然发现了实现超时退出的方法,MARK func AsyncCall() { ctx, cancel := context.WithTimeout(context.Background(), time.Duration(tim 阅读全文
posted @ 2022-08-15 11:03 Lucky小黄人^_^ 阅读(188) 评论(0) 推荐(0)
摘要:转自:golang:base64编解码 Go 语言的标准库自带了 Base64 编码算法,通过几行代码就可以对数据进行编码 编解码字符串 package main import ( "encoding/base64" "fmt" ) func main() { // 需要处理的字符串 message 阅读全文
posted @ 2022-08-09 14:47 Lucky小黄人^_^ 阅读(726) 评论(0) 推荐(0)
摘要:转自:goland json.Marshal导致&变成\u0026 **背景:**goland后台使用json.Marshal转换时,会将<,>,&转化为unicode编码,导致入库时&变成\u0026。 原因: json.marshal默认escapeHtml为true,会将<、>、&等字符转义。 阅读全文
posted @ 2022-08-09 14:41 Lucky小黄人^_^ 阅读(1969) 评论(0) 推荐(0)
摘要:转自:golang中的urlEncode package main import( "fmt" "net/url" ) func main() { var urlStr string = "https://www.baidu.com" escapeUrl := url.QueryEscape(url 阅读全文
posted @ 2022-08-09 14:25 Lucky小黄人^_^ 阅读(621) 评论(0) 推荐(0)
摘要:golang go get 时提示 no Go files in xxx,如下图所示,使用 go mod init 初始化一个 go.mod,随后使用 go mod tidy 即可拉取想拉取的包 阅读全文
posted @ 2022-08-07 16:21 Lucky小黄人^_^ 阅读(809) 评论(0) 推荐(0)
摘要:这两天发现一个有意思的情况,好像 gin 框架里 c.PostForm() 函数只能从表单中获取参数,不能从 body 中解析表单参数,也就是说你如果用 c.PostForm() 来解析获取参数,客户端发起请求时,如果参数放在表单里,服务端能正常获取到参数,但是如果客户端把参数放在 body 里,即 阅读全文
posted @ 2022-08-07 16:17 Lucky小黄人^_^ 阅读(857) 评论(0) 推荐(0)
摘要:mac 使用 Option+Command+L 快捷键可以快速格式化选中的代码块,如果想开启文件保存时自动格式化代码,有以下两种方式(可能有其他方式,但是我只试过这两种) 法一 添加一个 File Watcher。 点击 Goland -> Preferences -> Tools -> File 阅读全文
posted @ 2022-07-28 20:12 Lucky小黄人^_^ 阅读(1900) 评论(0) 推荐(0)
摘要:1、「方法」概念介绍 带有接收者的函数称为方法,方法是 go 语言中一种替代面向对象的方式。函数内部可以使用接收者,使用完之后根据接收者的类型是值类型还是指针类型选择是否自动覆盖原接收者。 可以随意安排函数定义的顺序,编译器会在执行前扫描每个文件。 2、接口变量的赋值 接口定义为一个方法的集合。方法 阅读全文
posted @ 2022-07-16 17:36 Lucky小黄人^_^ 阅读(316) 评论(0) 推荐(0)
摘要:转自:Debian10 安装Go环境,有删改 一、安装包下载: 下载地址:Go语言中文网,或者 go-download wget "https://studygolang.com/dl/golang/go1.18.3.darwin-amd64.tar.gz" -O go.tar.gz tar -C 阅读全文
posted @ 2022-07-03 21:42 Lucky小黄人^_^ 阅读(1567) 评论(0) 推荐(0)
摘要:转自:golang fmt.printf() 特殊字符 %% 打印一个百分号 fmt.Printf("%%%s%%", "nihao") // 输出%nihao% 输出地址 fmt.Printf("%p", aa) // 输出0xc0000b8000 非特殊字符 package main impor 阅读全文
posted @ 2022-07-03 21:02 Lucky小黄人^_^ 阅读(143) 评论(0) 推荐(0)