Go语言的浮点型比较大小及其函数式编程魅力

我们在编程中经常需要对两个浮点型比较大小,下面我就来分享一段这样的代码,同时也展示了Go语言函数式编程的独特魅力: import ( "fmt" "math" ) func main() { // 设置精确度为0.00001 var a Accuracy = func() float64 { return 0.00001 } fmt.Println(a.Equal(0.11111222, 0.11111222233333)) //打印结果为:true } type Accuracy func()...阅读全文

阅读:5871 评论:0

Golang 之于 DevOps 开发的利与弊(六部曲之一):Goroutines, Channels, Panics, 和 Errors

![](https://raw.githubusercontent.com/studygolang/gctt-images/master/go_devops/1.png) 对于你的下一个 DevOps 应用来说,Google 公司的 Go 可能是完美的语言。作为由 6 篇组成一个系列文章的第一篇,我们从 goroutines、panics 和 errors 开始深入研究 Go 语言的利与弊,因为这些利与弊涉及构建 DevOps 应用。 在这篇博客中,我们已经称赞了 Google 公司...阅读全文

2017-12-18 23:22:08 liuxinyu123
阅读:4693 评论:0

golang面试题整理

golang面试题整理 1、go的调度 2、go struct能不能比较 因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型 3、go defer(for defer),先进后出,后进先出 func b() { for i := 0; i < 4; i++ { defer fmt.Print(i) } } 4、select可以用于什么,常用语gorotine的完美退出 golang 的 select 就是监听 IO 操作,当 IO 操...阅读全文

2019.01.18 23:06 yongfutian
阅读:56279 评论:5

go build -tags 试验

使用方法 构建约束以一行+build开始的注释。在+build之后列出了一些条件,在这些条件成立时,该文件应包含在编译的包中; 约束可以出现在任何源文件中,不限于go文件; +build必须出现在package语句之前,+build注释之后应要有一个空行。 // // +build debug package main import "fmt" func main() { fmt.Println("Hello World!") } 语法规则 1)只允许是字母数字或_ 2)多个条件之间,空格表示O...阅读全文

2019.03.26 11:40* 疯长的胡茬
阅读:3828 评论:1

无缓冲和有缓冲通道

!["Go 之旅 插图,由 Go Gopher 的 Renee French 创作](https://raw.githubusercontent.com/studygolang/gctt-images2/master/buffered-and-unbufferd-channel/next-recvier.png) Go 中的通道(channel)机制十分强大,但是理解内在的概念甚至可以使它更强大。实际上,选择缓冲通道或无缓冲通道将改变应用程序的行为和性能。 ## 无缓冲通道 无...阅读全文

2019-09-23 12:34:16 TomatoAres
阅读:4472 评论:0

Golang处理PDF

工作中经常会遇到一些pdf文件处理的问题,一千种pdf有一千种处理方式,每次都是绞尽脑汁和这些pdf战斗到底。 本人又是一个gopher,所以这篇文章会以一个goper的视角,列举一下我所经历过的每一种pdf处理场景,比如: pdf渲染 pdf校验 pdf加水印 pdf获取页数 pdf合并 pdf拆分 修复受损pdf pdf转png 识别pdf中的字体 pdf解密 ... 复制代码本文大多是场景问题的罗列,可以根据标题摘取自己有兴趣的部分查看 很多pdf的问题我也不是特别专业,如果问题或者疑问欢...阅读全文

2020年01月01日 Poisoner
阅读:4710 评论:0

golang for-select 优雅的退出

启动两个做为生产者的go-routing, 分别将数据生产的数据写入两个带缓冲的通道cha1,ch2 分别模拟在Main go-routing和 sub go-routing中通过for-select循环读取两个通道的值并打印 通过3种方式优雅的退出main go-routing exit for-select in go-routing https://play.golang.org/p/Ar4389-87QE package main import ( // "time" "fmt" ) f...阅读全文

2020-05-21 19:32:47 夜空一起砍猩猩
阅读:8499 评论:2

zap 高性能是如何做到的?

![插图由“go 之旅”提供,原图由 Renee French 创作](https://raw.githubusercontent.com/studygolang/gctt-images2/master/20190815-go-how-zap-package-is-optimized/1__mMI_UYf-DsS04MU5AnRQg.png) Go 生态系统有许多流行的日志库,选择一个可以在所有项目中使用的日志库对于保持最小的一致性至关重要。易用性和性能通常是我们在日志库中考虑的两个指标。...阅读全文

2020-08-18 14:56:27 lts8989
阅读:2375 评论:0

golang面试

答案会在后续更新cch关于知乎go面试题的部分答案:https://xargin.com/answers-for-some-interview-questions/进程、线程、协程、goroutine区别,windows的协程和goroutine区别go有用过什么框架或者包go的调度、GMP什么运行mysql相关的golang包redis相关的包、redigo、goredis,redis的haspmap,zset原理goroutine是连续栈,可以扩容,那么Linux线程分配的栈不能类似扩容机制...阅读全文

2020-08-27 00:32:41 无拘无束的猪
阅读:1235 评论:0

字节跳动 Golang面试

应朋友之邀,今天下午去字节送了颗人头,最后不负众望,被面试官撵出来了…… 一面 谈一下之前重构百度账号中心的方案 吹了一波之前在百度改造restful接口的方案,但面试官并不感冒,提了一个显示文章的列表的场景,但感觉没有理解面试官的意思,没有提出面试官满意的restful解决方案,刚开始就得了个负分,这块得抽空找大佬再探讨探讨,等后面有什么心得再补充吧 mysql索引快的原理 回答这个问题需要先看一下数据库的存储结构 页结构 页和页之间的关系 页和页之间的关系 有个知识,之前不知道的 聚集索引:...阅读全文

2020-12-25 01:32:40 血之君殇
阅读:6166 评论:5