四舍五入在Go语言中为何如此困难 (mp.weixin.qq.com)

【简介】

在 Go 语言中这似乎成为了难题,在 stackoverflow 上搜索 [go] Round 会存在大量相关提问,Go 1.10 开始才出现 math.Round 的身影,本以为 Round 的疑问就此结束,但是一看函数注释 Round returns the nearest integer, rounding half away from zero ,这是并不常用的 Round half away from zero 实现呀,说白了就是我们理解的 Round 阉割版,精度为 0 的 Round half up 实现,Round half away from zero 的存在是为了提供一种高效的通过二进制方法得结果,可以作为 Round 精度为 0 时的高效实现分支。

点击查看全文 >>

@code小生 2022-07-24 11:01分享 / 0个评论
赞过的人: IT技术博客大学习 code小生
要不要再学学下面的文章?
Go: logrus性能提升 (wklken.me)
在Go项目中,logrus是一个相对完备的第三方日志库,用起来非常顺手, 特别是WithField/WithFields/WithError。我们开发一些对性能要求非常高的应用,例如API网关/权限服务等,需要记录流水日志,此时日志库的性能直接会影响整体接口性能,所以针对性地做了一些优化。
by @技术头条 2022-07-24 21:03 分享 查看详情
别瞎学了,这几门语言要被淘汰了! (mp.weixin.qq.com)
为了办公便捷和效率提升,新的编程语言如雨后春笋般出现,但只有少数编程语言才能成为新宠。

这种进步的一个副作用是一些古老的编程语言必然会跟历史一样被人们遗忘。

如果一个编程语言不能与时俱进,那用户群一定会流失。
by @code小生 2022-06-26 11:29 分享 查看详情
使用BPF, 将Go网络程序的吞吐提升8倍 (colobu.com)
经典的bpf(classical Berkeley Packet Filter) 是非常好用的一个技术,在一些特殊的Go底层网络编程的场合,可以很好的提高性能。
by @技术头条 2022-06-19 19:27 分享 查看详情
编写可维护的Go代码 (colobu.com)
编写可维护的代码是最基本的要求。清晰度、可读性和简单性都是保持代码可维护性的各个方面。它应该使某人加入您的项目或在有人离开后维护代码的过程变得容易。可维护性的衡量指标是代码更改的容易程度以及与这些更改引起的风险性。为了有效地编写Go程序,了解Go语言的属性和地道写法,并使用与命名、程序构建、格式等相关既定约定是至关重要。

本文是一些有助于编写可维护的Go代码的良好实践。
by @技术头条 2022-05-23 00:05 分享 查看详情
编写可维护的Go代码 (colobu.com)
编写可维护的代码是最基本的要求。清晰度、可读性和简单性都是保持代码可维护性的各个方面。它应该使某人加入您的项目或在有人离开后维护代码的过程变得容易。可维护性的衡量指标是代码更改的容易程度以及与这些更改引起的风险性。为了有效地编写Go程序,了解Go语言的属性和地道写法,并使用与命名、程序构建、格式等相关既定约定是至关重要。

本文是一些有助于编写可维护的Go代码的良好实践。
by @技术头条 2022-05-23 00:05 分享 查看详情
面试官提问三个Go接口的概念, 10年gopher竟无言以对 (colobu.com)
自 Go 1.18后, Go的interface的含义有所变化, 三个新的和Go接口有关的概念很多人还不知道: type set(类型集合)、specific type(特定类型)和structural type(结构类型)。
by @技术头条 2022-05-06 23:30 分享 查看详情
Go泛型系列:再简化,省略接口 (colobu.com)
如果你一直关注Go泛型的设计和实现,一定知道Go泛型代码实现是通过类型参数(type parameter)实现的,当运行泛型代码时,类型参数(type parameter)由类型参数(type argument)替代。(很遗憾parameter和argument都被翻译成了中文参数)

类型参数(type parameter)也有类型,也就是描述这个参数类型行为的元数据,被成为约束(constraint)。最通用的约束就是内建的any类型,它代表任意的类型。
by @技术头条 2022-05-06 23:16 分享 查看详情
Go泛型不支持泛型方法,这是一个悲伤的故事 (colobu.com)
根据Go 泛型提案的描述,Go不支持泛型方法:No parameterized methods。主要原因Go泛型的处理是在编译的时候实现的,泛型方法在编译的时候,如果没有上下文的分析推断,很难判断泛型方案该如何实例化,甚至判断不了,导致目前(Go 1.18)Go实现中不支持泛型方案。

不过,泛型方法的缺失,多多少少给程序员带来一丝丝的忧伤的情绪,在一些场景之下,使用起来特别不方便。我最近看到了几个因为缺乏泛型方法导致的问题,在本文中总结一下,和大家探讨。
by @技术头条 2022-05-06 23:15 分享 查看详情
最佳Web编程语言都有哪些? (mp.weixin.qq.com)
如果你是一名新晋的 Web 开发人员,那么在选择最佳 Web 编程语言时将面临很多困难。不同的编程语言支持不同的编程技术,而且各有各的复杂性。此外,新的编程语言层出不穷,让人看得眼花缭乱。
在本文中,我们将列出一些最适合 Web 开发的编程语言,作为参考。
by @code小生 2022-04-19 20:19 分享 查看详情
一个Go语言实现的数据库 (mp.weixin.qq.com)
rosedb 是一个稳定、高性能、快速、内嵌的 k-v 数据库,支持多种数据结构,包含 String、List、Hash、Set、Sorted Set,接口名称风格和 Redis 类似。

rosedb 数据文件布局基于 LSM Tree 和 WAL,纯 Golang 实现,易于使用、扩展。我们的愿景是打造一个高效的 k-v 存储引擎,你可以给我们提任何建议,也请给我们一个 start ✨ 吧,非常感谢!
by @code小生 2022-03-27 23:42 分享 查看详情