12 Golang defer panic recover

defer Golang中的defer会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按defer定义的逆序执行。也就是说,最先被defer的语句最后被执行。 fmt.Println("开始") defer fmt.Println(1) defer fmt.Println(2) defer fmt.Println(3) fmt.Println("结束") //开始 //结束 //3 //2 //1 defer在函数中必须是匿名自执行函数 func f1(){ ...阅读全文

简书 2021-03-25 04:32:36 learninginto

排序算法 (桶、冒泡、快速)

以下模块以Golang调试 桶排序(简化版) 桶排序,受限于所需要排序的数字区间,也就是说,当所需要排序的数字足够大的时候,就需要申请足够容纳数字最大值长度的内容空间,只需要对数字区间内的几个数字做排序;浪费空间; 复杂度:O(M+N) func bucketSort() { var ( input = []int{1, 8, 3, 5, 2, 4, 5} result = []int{} ) for i := 0; i <= 10; i++ { result = append(result, ...阅读全文

简书 2021-03-25 04:32:36 hatch_win

2021-03-24:给定一个整数组成的无序数组arr,值可能正、可能负、可能0。给定一个整数值K,找到arr的所有子数组里,哪个子数组的累加和等于K,并且是长度最大的。返回其长度。

2021-03-24:给定一个整数组成的无序数组arr,值可能正、可能负、可能0。给定一个整数值K,找到arr的所有子数组里,哪个子数组的累加和等于K,并且是长度最大的。返回其长度。 福大大 答案2021-03-24: 我刚开始的想法,是对数组的每一位加上一个值,把数组全部变成非负数。比如[-5,3,1]变成[0,8,6]。可惜这种方法行不通,因为整数值K会变成不固定,还是没法用双指针。 求前缀和,存map。 代码用golang编写,代码如下: package main import "fmt"...阅读全文

简书 2021-03-25 04:32:35 福大大架构师每日一题

手撸golang GO与微服务 net.rpc

手撸golang GO与微服务 net.rpc 缘起 最近阅读 [Go微服务实战] (刘金亮, 2021.1) 本系列笔记拟采用golang练习之 gitee: https://gitee.com/ioly/learning.gooop net/rpc 微服务中的进程间通信概述 对于进程间通信的技术,开发者有多种选择。 可以选择基于同步通信的通信机制,比如HTTP RESTful; 也可以选择基于异步通信的方式,Go语言提供了标准的net/rpc包以支持异步。 远程过程调用协议(Remote P...阅读全文

简书 2021-03-25 04:32:35 老罗话编程

手撸golang GO与微服务 net.rpc之1

手撸golang GO与微服务 net.rpc缘起最近阅读 [Go微服务实战] (刘金亮, 2021.1)本系列笔记拟采用golang练习之gitee: https://gitee.com/ioly/learning.gooopnet/rpc微服务中的进程间通信概述 对于进程间通信的技术,开发者有多种选择。 可以选择基于同步通信的通信机制,比如HTTP RESTful; 也可以选择基于异步通信的方式,Go语言提供了标准的net/rpc包以支持异步。 远程过程调用协议(Remote Procedu...阅读全文

Segmentfault 2021-03-26 07:32:32 ioly

《尚硅谷韩顺平Go语言核心编程》全套视频教程免费下载

今天无意之间又发现尚硅谷更新新的视频教程了,所以我就在第一时间分享这套教程给大家! 这台教程来自尚硅谷的韩顺平老师,全套视频共 387 个章节。 目前在全球统计的编程语言排名中,go 语言也在稳步的上升中。而且一些区块链等项目采用的都是 Go 语言。在各大招聘网站,Go 语言的需求数也是越来越多,有心想学习 Go 的朋友,可以在我这里免费的下载这套视频! 下面是这套视频的一些具体章节: 001_Golang可以做什么 002_如何学习Golang更高效(1) 003_如何学习Golang更高效(...阅读全文

51CTO博客 2021-03-24 21:39:29 mob604756f06ed8

《尚硅谷韩顺平Go语言核心编程》全套视频教程免费下载

今天无意之间又发现尚硅谷更新新的视频教程了,所以我就在第一时间分享这套教程给大家! 这台教程来自尚硅谷的韩顺平老师,全套视频共 387 个章节。 目前在全球统计的编程语言排名中,go 语言也在稳步的上升中。而且一些区块链等项目采用的都是 Go 语言。在各大招聘网站,Go 语言的需求数也是越来越多,有心想学习 Go 的朋友,可以在我这里免费的下载这套视频! 下面是这套视频的一些具体章节: 001_Golang可以做什么 002_如何学习Golang更高效(1) 003_如何学习Golang更高效(...阅读全文

51CTO博客 2021-03-24 21:39:17 mob604756f06ed8

使用BKLexer进行词法分析

前几天我已经封装好了词法分析器并命名BKLexer,当前BKLexer分别支持Go/C++/Python。程序代码放在Github项目当中: 点进项目页可以参考每一个版本的try_lexer代码进行学习,下面以Go为例:package main import ( "fmt" "strconv" "./bklexer" ) func main() { fmt.Println("Test Code:") code := "声明 变量 = PI * 100 - fda\n1024 * 4 * 3.14...阅读全文

Segmentfault 2021-03-25 22:32:33 bxtkezhan

Golang语言循环、指针、结构体和切片(打卡✏️第二天)|Go主题月

Go 语言循环语句for循环是一个循环控制结构,可以执行指定次数的循环。for init; condition; post { }init: 一般为赋值表达式,给控制变量赋初值; condition: 关系表达式或逻辑表达式,循环控制条件; post: 一般为赋值表达式,给控制变量增量或减量。 for i:=1;i<100;i++{ fmt.Println(i) } for rangefor循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环for key, value...阅读全文

Segmentfault 2021-03-25 19:32:33 叫我詹躲躲

毫秒级查询的离线IP地址定位库,太实用了!

大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!   咱们程序员开发任何系统,基本上都需要查询IP地址,比如操作日志、登录IP等等。今天小编推荐一款Ip地址库,准确率99.9%的离线IP地址定位库,0.0x毫秒级查询,这个库数据库只有数MB,提供了java,php,c,python,nodejs,golang,c#等查询绑定和Binary,B树,内存三种查询算法。 开源协议   ...阅读全文

简书 2021-03-24 12:32:37 GitHub导航站

11 Golang函数详解

Go语言中支持:函数、匿名函数和闭包 定义函数使用func关键字 func 函数名(参数)(返回值){ 函数体 } 注意:函数名由字母、数字、下划线组成,但不能以字母开头。在同一个包内,函数名不能重名 //求两个数的和 func sumFn(x int, y int) int { sum := x + y return sum } func main(){ result := sumFn(12, 3) fmt.Println(result)//15 } 函数参数的简写(只能简写前面的) func...阅读全文

简书 2021-03-24 12:32:35 learninginto

Golang入门三:类型

基础类型 布尔类型:bool 整形:int8、byte、int16、int、uint、uintptr等 浮点类型:float32、float64 复数类型: complex64、 complex128。 字符串: string。 字符类型: rune。 错误类型: error。 此外, Go语言也支持以下这些复合类型: 指针( pointer) 数组( array) 切片( slice) 字典( map) 通道( chan) 结构体( struct) 接口( interface) 布尔 var ...阅读全文

简书 2021-03-24 12:32:35 馒头_8bb4

go的垃圾回收机制(GC)

常用的垃圾回收算法 1.引用计数(reference counting):如Python 2.标记-清扫(mark & sweep):如golang 3.复制收集(copy and collection):目前许多商业虚拟机都采用这种垃圾回收算法 Golang 的三色标记法 golang 的垃圾回收(GC)是基于标记清扫算法,这种算法需要进行 STW(stop the world),这个过程就会导致程序是卡顿的,频繁的 GC 会严重影响程序性能. golang 在此基础上进行了改进,通过三色标记...阅读全文

简书 2021-03-24 12:32:35 不能吃的坚果j

Go time 包中的 AddDate 的逻辑避坑指南

从 C++ 转 Go 后,当操作时间变量的时候,Go 原生的 time 包用起来简直不要太舒服,再也不用自己写轮子了。我之前就写过一篇文章介绍了 time 的常用用法。不过在开发过程中其实也遇到 time 在 AddDate 的一个坑,因此撰此薄文分享一下。问题发现AddDate 有三个参数,分别是年、月、日。在官方文档中,对 time.AddDate 方法的说明如下:AddDate returns the time corresponding to adding the given numbe...阅读全文

Segmentfault 2021-03-25 18:32:33 amc

Go语言学习笔记2

2.Go语言基本词法 Go语言的语言符号又称为词法元素,共包括5类:标识符(identifier)、关键字(keyword)、操作符(operator)、分隔符(delimiter)、以及字面量(literal)。一般情况下,空格符、水平制表符、回车符和换行符都会被忽略,除非它们作为多个语言符号之间的分隔符的一部分。在Go语言中不需要显示地插入分号,在必要时,Go语言会自动为代码插入分号以进行语句分隔。 Go语言代码由若干个Unicode字符组成,Go语言的所有源代码都必须由Unicode编码规...阅读全文

51CTO博客 2021-03-24 09:16:16 Huazie

2021-03-23:给定一个正整数组成的无序数组arr,给定一个正整数值K,找到arr的所有子数组里,哪个子数组的累加和等于K并且是长度最大的。返回其长度。

2021-03-23:给定一个正整数组成的无序数组arr,给定一个正整数值K,找到arr的所有子数组里,哪个子数组的累加和等于K并且是长度最大的。返回其长度。 福大大 答案2021-03-23: 双指针。小于等于K时,右指针右移,窗口和的值累加,等于时收集答案;大于K时,左指针右移,窗口和的值减少。 代码用golang编写,代码如下: package main import "fmt" func main() { arr := []int{1, 2, 3, 0} ret := getMaxLen...阅读全文

简书 2021-03-24 05:32:36 福大大架构师每日一题

推荐几本 Go 语言书籍

首先推荐《Go 程序设计语言》这本书: image 豆瓣评分挺高的,需要特别说说这本书里面的示例代码,质量非常高!如果跟着敲一遍,自己多理解的话,对于 Go 一定会有更好的理解。我目前也在看这本书,很多代码甚至还不是非常理解,需要多花一点时间。当然我觉得这也挺好的,与其看一些垃圾书,还不如认认真真的看完一本高质量的书来得爽! 其他的相关书籍就不是很了解了,只不过也有一些质量和口碑都比较好的,这里分享给大家几本 Go 的书籍: image Go 高级编程 Go 语言编程 Head First Go...阅读全文

简书 2021-03-24 05:32:36 roseduan