随笔分类 - go
go爱好
摘要:例如: func main() { var ch chan int ch = nil close(ch) } 调试第行:close(ch) ,调用相关函数 1. 使用如下命令查看编译调用相关函数: a. go tool objdump ./main | grep -E "main.go:6" b.
阅读全文
摘要:题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 解体思路 这样以来,我们就可以使用「滑动窗口」来解决这个问题了: 我们使用两个指针表示字符串中的某
阅读全文
摘要:思路: 总体使用生产者消费者模式。使用两个有缓冲区的channel来实现协程的并发控制,一个sigChannel通过缓冲空间限制最大的协程数量,另一个jobChannel则用于传递请求的数据(包括请求函数以及参数),该jobChannel对于是否缓冲没有要求。 流程: (1)首先当请求到来之后,往s
阅读全文
摘要:1.本地环境 Macbook pro 系统:macOS Mojave IDE: vs code 终端: iTerm2 + zshGo: homebrew安装 go版本1.14.3 其他数据库一类的支持软件使用Docker镜像 2.开启模块,配置国内代理 因为本机使用zsh, 所以在用户目录下,修改.
阅读全文
摘要:发生情况: 在方法内把局部变量指针返回 局部变量原本应该在栈中分配,在栈中回收。但是由于返回时被外部引用,因此其生命周期大于栈,则溢出。 发送指针或带有指针的值到 channel 中。 在编译时,是没有办法知道哪个 goroutine 会在 channel 上接收数据。所以编译器没法知道变量什么时候
阅读全文
摘要:今天遇到了一个小坑:使用etcdv3的时候,报了这么一堆错误 # github.com/coreos/etcd/clientv3/balancer/resolver/endpointvendor\github.com\coreos\etcd\clientv3\balancer\resolver\en
阅读全文
摘要:func ExampleDecoder() { const jsonStream = ` {"Name": "Ed", "Text": "Knock knock."} {"Name": "Sam", "Text": "Who's there?"} {"Name": "Ed", "Text": "Go
阅读全文
摘要:不要给另外的字符串分配额外的空间,你必须原地修改输入字符串、使用 O(1) 的额外空间解决这一问题。package mainfunc Reverse(s string) string { r := []rune(s) for i, j := 0, len(r)-1; i < j; i, j = i+
阅读全文
摘要:example: type Query struct { Attributes []string Modifiers map[string][]Modifier Sources map[string][]string SourceAliases map[string]string Condition
阅读全文
摘要:不在同一个项目下目录结构 导入包这个时候,mypackage也需要进行module初始化,即拥有一个属于自己的go.mod文件,内容如下:module mypackagego 1.14然后我们在moduledemo/main.go中按如下方式导入:package mainimport ( "fmt"
阅读全文
摘要:原文地址:https://mp.weixin.qq.com/s/K032xlARjiyS8ecJrqZXaA 本题 LeetCode 链接: https://leetcode.com/problems/fizz-buzz-multithreaded/ 本题题目 给定一个数列从 1 ~ n,依序输出,
阅读全文
摘要:修改请求参数以后: body := fmt.Sprintf(`{"EventCategory": "%s","TicketNum": "%s"}`, eventcategory, ticketnum)
阅读全文
摘要:package main import ( "fmt" ) func main() { nums := []int{1, 5, 7, 8, 9} target := 10 solutions(nums, target) } func solutions(nums []int, target int)
阅读全文
摘要:https://www.jianshu.com/p/c666ebdb462b Go mod 简介 Golang一直存在一个被人诟病的问题是缺少一个官方的包依赖管理工具。从我个人的角度上来看存在两个问题: GOPATH特性对于多工程的情况下,支持不算友好。 GOPATH无法对依赖包进行有效的版本管理,
阅读全文
摘要:Ticker是周期性定时器,即周期性的触发一个事件,通过Ticker本身提供的管道将事件传递出去。 定时聚合任务 有时,我们希望把一些任务打包进行批量处理。比如,公交车发车场景: 公交车每隔5分钟发一班,不管是否已坐满乘客; 已坐满乘客情况下,不足5分钟也发车; 下面代码演示公交车发车场景: //
阅读全文
摘要:Timer实际上是一种单一事件的定时器,即经过指定的时间后触发一个事件,这个事件通过其本身提供的channel进行通知。之所以叫单一事件,是因为Timer只执行一次就结束,这也是Timer与Ticker的最重要的区别之一。 使用场景 设定超时时间 如: func WaitChannel(conn <
阅读全文
摘要:1.前言: 所谓逃逸分析(Escape analysis)是指由编译器决定内存分配的位置,不需要程序员指定。 函数中申请一个新的对象 如果分配在栈中,则函数执行结束可自动将内存回收; 如果分配在堆中,则函数执行结束可交给GC(垃圾回收)处理; 有了逃逸分析,返回函数局部变量将变得可能,除此之外,逃逸
阅读全文
摘要:https://www.cnblogs.com/zhizihuakai/p/11296743.html https://www.jianshu.com/p/318c45162641 docker-compose 命令简介 version: 指定 compose 文件的版本( Compose文件格式有
阅读全文
摘要:地址;https://github.com/panjf2000/ants 采用蚂蚁池开源的SDK,ants 是一个高性能且低损耗的 goroutine 池 package mainimport ( "fmt" "sync" "sync/atomic" "time" "github.com/panjf
阅读全文
摘要:文章链接:https://mp.weixin.qq.com/s/FJLH4o7Y1TG9I0seiNwR_w https://maiyang.me/post/2018-02-12-how-to-correctly-use-context.context-in-golang/ context是一个很好
阅读全文

浙公网安备 33010602011771号