10. Go 语言流程控制:for 循环

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:golang.iswbm.com 我的 Github:github.com/iswbm/GolangCodingTime Go里的流程控制方法还是挺丰富,整理了下有如下这么多种: if - else 条件语句 swi...阅读全文

掘金 2020年05月05日 王一白

Go 高级基准测试

## 背景 有时你必须解决不同类型的问题。通常来说复杂的问题并不会只有单一的解决方案,但是解决方案的优劣取决于程序在运行时所要解决问题的子集。 我所遇到的一个例子是分析一些代理的连接中的某些数据流。 从流量中提取信息的方法主要有两种:保存整个数据流,当流量结束后立即分析;或者(使用一个缓存窗口)以降低速度为代价,在数据流传输过程中进行分析。 内存相对与处理能力来说要更加便宜,所以我的第一版解决方案是使用缓存的方案。 ### 第一版代码:使用缓存(buffer) ...阅读全文

Go语言中文网 2020-05-05 21:14:43 dust347

用 Golang 实现 RSA 加密和签名(有示例)

本文介绍 RSA 干了什么,以及我们怎样用 Go 实现它。 ![](https://raw.githubusercontent.com/studygolang/gctt-images2/master/20200408-Implementing-RSA-Encryption-and-Signing-in-Golang/00.jpg) RSA(*Rivest–Shamir–Adleman*)加密是使用最广的安全数据加密算法之一。 它是一种非对称加密算法,也叫”单向加密“。用这种方式...阅读全文

Go语言中文网 2020-05-05 20:24:53 lxbwolf

Golang 开发环境配置-Windwos

下载安装Go语言 下载地址:https://golang.google.cn/dl/ 下载完成后,直接双击 msi 文件进行安装,一路点击Next即可 打开wind+R 输入cmd,打开命令行工具,输入 go version 查询安装的go版本。 $ go version go version go1.14.2 windows/amd64 配置go环境变量 GOPATH是一个环境变量,用来表明你写的go项目的存放路径。使用msi安装的golang,会为你配置默认的环境变量,我们需要修改GOPAT...阅读全文

Segmentfault 2020-05-08 23:32:34 进击的小白

【Golog】包

正文 package main import ( "fmt" "math/rand" ) import "math/cmplx" func main() { fmt.Printf("Now you have %g problems.\n", math.Sqrt(7)) } 这里这个头部有的这个package main有点像Java一样,这里的主函数入口func main()暂时没看到类型和返回值。 但是按照官网import支持两种方式一个是小括号,还有就是支持像python那样的一个一个impo...阅读全文

Segmentfault 2020-05-08 20:32:34 石渊友

【Golog】学习go

缘起 在写A new way to cpp的时候我想用数据库来引入 I/O模型,并发,数据结构的概念。发现我很尴尬的不知道从何起笔。找遍互联网的资料,知乎大佬上来就是大三作业做过数据库,高屋建瓴的说这说那,太不接地气。 恰好此时,我发现了TiDB发起了一个Talent Plan的项目,可以选择学习路线。我就选择了这个项目。 然后发现预备知识有go语言。那么这个是我第一次接触的语言我想知道我一宿能走到哪一步。毕竟我学习过编译原理,也学习了MIT6.001 SICP,所以这次我想直接站在词法分析到代...阅读全文

Segmentfault 2020-05-08 14:32:34 石渊友

让我们一起啃算法----合并两个有序链表

合并两个有序链表(Merge-Two-Sorted-Lists) 题干如下: 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4来源:力扣 这个题目和 两数相加 相似,都是考察对链表的操作。其实具体实现方式也差不多啦。 解题思路 根据题干我们知道,给定的两个链表是有序的。假设 l1 指向其中一个链表的头部,l2 指向另一个链表的头部,并初始化 head 和 curre...阅读全文

Segmentfault 2020-05-08 09:32:38 三斤和他的朋友们

5_4

ok. write diary now. I start at? night o'clock. lest me see how long time to need. you want know that. but it's case how many things you want to say. if nothing. you make things. that's need time. today is may 4.I got Chengdu about two months ago. ti...阅读全文

简书 2020-05-05 13:32:44 蛐蛐儿阳

24.依赖管理及go module

Go语言的依赖管理随着版本的更迭正逐渐完善起来。 windows开启go module:set GO111MODULE=on Linux开启go module:export GO111MODULE=on 依赖管理 为什么需要依赖管理 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决? godep Go语言从v1.5开始开始引入vendor模式,如果项目目录下有vendor目录...阅读全文

简书 2020-05-05 13:32:44 雪上霜

使用context取消goroutine的执行

Go语言里每一个并发的执行单元叫做goroutine,当一个用Go语言编写的程序启动时,其main函数在一个单独的goroutine中运行。main函数返回时,所有的goroutine都会被直接打断,程序退出。除此之外如果想通过编程的方法让一个goroutine中断其他goroutine的执行,只能是通过在多个goroutine间通过context上下文对象同步取消信号的方式来实现。 这篇文章将介绍一些使用context对象同步信号取消中断程序执行的常用模式和最佳实践,从而让我们能构建更迅捷、健...阅读全文

简书 2020-05-05 13:32:44 KevinYan_a990

使用 timeout、deadline 和 context 取消参数使 Go net/http 服务更灵活

关于超时,可以把开发者分为两类:一类是了解超时多么难以捉摸的人,另一类是正在感受超时如何难以捉摸的人。 超时既难以捉摸,却又真实地存在于我们生活的由网络连接的世界中。在我写这篇文章的同时,隔壁两个同事正在用他们的智能手机打字,也许是在跟与他们相距万里的人聊天。网络使这一切变为可能。 这里要说的是网络及其复杂性,作为写网络服务的我们,必须掌握如何高效地驾驭它们,并规避它们的缺陷。 闲话少说,来看看超时和它们是如何影响我们的 `net/http` 服务的。 ## 服务超时 —...阅读全文

Go语言中文网 2020-05-05 13:28:17 lxbwolf