Golang快速排序

go快速排序算法,Go没有while循环,使用for //快速排序,分治-填充 func div_sort(arr []int,l int,r int) { if l >= r { return } i := l j := r x := arr[l] for i < j { for i<j { if arr[j] >= x { j-- } arr[i] = arr[j] // 查找到第一个满足条件跳出 break } for i<j { if arr[i] <= x { i++ } arr[j]...阅读全文

简书 2020-09-08 13:54:18 ES_KYW

beego orm 诡异的table not exists

明显对于报错的提示就是表找不到 我们来看一下官方文档的描述​什么是QuerySeter?其实就是 QueryTable() //返回就是QuerySeter如果我们使用了Raw 就没有这个问题了,如果我们排除了 表名 未写错 ,同时也注册了模型 orm.RegisterModel那么极大的问题就是定义的结构模型与数据库不一致导致的,我们需要重新TableName方法 如下1.自定义新的结构体,指定其属性对应数据库对应的列type TmkModel struct { Id in...阅读全文

Go语言中文网 2020-09-08 13:29:39 ccoding

前端性能优化--6大角度综合型优化方案

下载地址:百度网盘前端性能优化--6大角度综合型优化方案我们常说性能永远是第一需求,作为一个前端工程师,不管使用什么框架,不管从事什么类型的网站或应用开发,只要是项目被用户使用,性能优化就永远是你需要关注的问题。通常情况下,工程师们在深入了解前端技术的原理后,才能总结出性能优化的方案,需要多年经验的积累。前端技术日新月异,优秀的性能优化方案在近几年也层出不穷。本课程,我会带你使用当今行业中非常前沿&专业的方案,解决前端性能优化问题。无论是为了解决工作中的实际问题,还是为了提升能力,这门课都能帮到...阅读全文

Go语言中文网 2020-09-08 01:04:35 oppo

Go 每日一库之 gabs

简介JSON 是一种非常流行的数据交换格式。每种编程语言都有很多操作 JSON 的库,标准库、第三方库都有。Go 语言中标准库内置了 JSON 操作库encoding/json。我们之前也介绍过专门用于查询 JSON 串的库gjson和专门用于修改 JSON 串的库sjson,还有一个非常方便的操作 JSON 数据的命令行工具jj。今天我们再介绍一个 JSON 工具库——gabs。gabs是一个用来查询和修改 JSON 串的库。它使用encoding/json将一般的 JSON 串转为map[s...阅读全文

Segmentfault 2020-09-12 11:32:33 darjun

合并排序-golang

合并排序 先对数组进行拆分,拆分成一个个单独的数字,然后再对拆分的数组进行合并。整体思路就是天下大事,分久必合。 image.png 如图所示,先对数组进行拆分,然后通过比较合并数组,因为每个合并的数组都是排好序的,因此可以通过遍历进行数组的合并。 代码 package main import "fmt" func mergeSort(a []int) []int { if len(a) < 2 { return a } m := (len(a)) / 2 f := mergeSort(a[:m...阅读全文

简书 2020-09-07 23:05:23 追梦人在路上不断追寻

Sperax月报 | 2020年8月

就像武功秘籍修炼到最后,总是有一层看不见的屏障,挡住了一般人前进的道路,而突破这层屏障的人,即为真正的武林高手。现在,各类Defi项目同样也遇到了这个难题。2020年,马太效应在区块链领域表现得愈发明显,强者愈强,壁垒森严,现有的Defi项目基本都是师出名门,没家的孩子很难实现进一步的跨越。在这样的大市场环境下,Sperax的表现称得上是个满意的答卷,接下来,会为大家带来本期Sperax项目周报。『技术进展 』1.本月Sperax正式宣布集成Chainlink去中心化预言机网络,在“打通区块链和...阅读全文

简书 2020-09-07 19:50:03 Sperax

golang select

使用场景 select主要用来监控多个channel,channel的数据读取,写入,关闭等事件,采用的是轮训算法 监控事件 channel读取事件 channel的写入事件 channel关闭事件 其他default 读取事件 func addNumberToChan(chanName chan int) { for { chanName <- 1 time.Sleep(1 * time.Second) } } // select 监控channel的push事件 func testReadC...阅读全文

简书 2020-09-07 15:45:43 哈哈_dfde

golang channel详解

channel是什么? golang语言中,channel是一个协程安全的FIFO的队列,读取和写入操作都是原子操作 使用场景 用来做多协程之间的通信,java中的线程之间的通信是通过共享内存实现的,A线程获取内存区域,并且“锁”住内存这块区域,然后执行临界区代码,这一时刻无法获取锁的其他线程阻塞,直到A线程释放锁(实际上就是释放刚才锁住的内存区域),其他线程继续竞争共享内存,获取锁的执行临界区代码。这个过程本质上是通过共享内存的方式实现多线程通信。而golang提出了新的通信方式:用通信来共享...阅读全文

简书 2020-09-07 14:51:16 哈哈_dfde

ARTS 第17周 | LeetCode 24 Swap Nodes in Pairs | 分布式系统设计 | 开发能力

ARTSARTS 是陈浩(网名左耳朵耗子)在极客时间专栏里发起的一个活动,目的是通过分享的方式来坚持学习。每人每周写一个 ARTS:Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。本周内容本周的 ARTS你将看到:成对翻转链表.一文看懂分布式系统设计?Golang 为什么不推荐加等操作?代码能力到底是什么能力?Algorithm本周的算法题是非常常见的一道题目: 成对翻转链表 Swap Nodes in...阅读全文

Segmentfault 2020-09-12 11:32:33 澎湃哥

Golang项目通用Dockerfile编写

golang go path和go mod的区别 go path 所有运行的go文件都要放在gopath文件下, 因为下载下来的包都在这里目录下可以引用 go path顾名思义,需要一个环境变量 GOPATH/src 存放项目源代码 $GOPATH/bin 存放项目可执行文件 go mod 他有一套引用机制 无论你的go文件在哪里 都可以引用包 go path方式 #编译镜像 FROM golang:latest as builder MAINTAINER TigerwolfC@***.com....阅读全文

简书 2020-09-07 12:34:19 不屈真实

Golang使用快慢指针找不知长度链表的中间节点

线性表的链式存储,以及使用快慢指针找不知长度链表的中间节点 题目描述 首先,给定一个带有头结点 head 的不知长度链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。注意链表长度未知,这里测试定义的链表结构体存储的数据类型可以用字符串类型。 示例说明: 实例1 输入:“one”-"two"-"three"-"four"-"five" 输出:链表的中间节点为 ["three"] 实例2 输入:“tom”-"jack"-"kaka"-"James"-"vickor"-"wade"...阅读全文

简书 2020-09-07 12:34:18 不屈真实

Serverless 衔接 Kafka 上下游数据流转实战

腾讯云 CKafka 作为大数据架构中的关键组件,起到了数据聚合,流量削峰,消息管道的作用。在 CKafka 上下游中的数据流转中有各种优秀的开源解决方案。如 Logstash,File Beats,Spark,Flink 等等。本文将带来一种新的解决方案:Serverless Function。其在学习成本,维护成本,扩缩容能力等方面相对已有开源方案将有优异的表现。 作者简介:许文强,腾讯云 Ckafka 核心研发,精通 Kafka 及其周边生态。对 Serverless,消息队列等领域有较深...阅读全文

简书 2020-09-07 12:34:18 腾讯云Serverless

golang爬虫框架colly

colly.png colly一款快速优雅的golang爬虫框架,简单易用,功能完备。 官网地址:http://go-colly.org/ 包地址:import "github.com/gocolly/colly" 一个简单的例子: package main import ( "fmt" "github.com/gocolly/colly" ) func main() { c := colly.NewCollector() c.OnHTML("a", func(e *colly.HTMLElem...阅读全文

简书 2020-09-07 00:10:25 写个代码容易么

理解Golang的goroutine和channel

烂笔头啊烂笔头...... golang是最好的并发语言,拒绝任何反驳。 说到golang的并发,必须要提一个概念--协程 开销:进程>线程>协程 三者之间的关系可自行百度 目前并发比较流行的三种模式: 1、多线程:每个线程一次处理一个请求,线程越多可并发处理的请求数就越多,但是在高并发下,多线程开销会比较大。 2、协程:无需抢占式的调度,开销小,可以有效的提高线程的并发性,从而避免了线程的缺点的部分。 3、基于异步回调的IO模式,说个比较流行的快速建站语言--nodejs,通过事件驱动的方式与...阅读全文

简书 2020-09-07 00:10:23 20190729

swagger界面换装

golang语言警告,其他语言需要DIY哟 Swagger这么好的东西,可惜界面太难用,API一旦多起来,找起来特别吃力,有人肯定说,自己做一套?不,觉得难用的可能不止我一个,先搜索看看,经过3分钟努力,我发现了这个 来自Stack 复制/粘贴 flow 这个ReDoc看着不错,加入“购物车”。 看看对照效果 PetStore对比 左侧tag分类折叠,中部显示请求、返回数据结构和注释、右边显示URI和单纯的结构。 优缺点: swagger-ui 结构紧凑,整体内容居中,带有接口测试客户端,在接口...阅读全文

简书 2020-09-06 22:00:45 Godan