Go语言爱好者周刊:第 168 期

polaris · 2022-11-20 19:39:21 · 310825 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2022-11-20 19:39:21 的主题,其中的信息可能已经有所发展或是发生改变。

这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue

鉴于一些人可能没法坚持把英文文章看完,因此,周刊中会尽可能推荐优质的中文文章。优秀的英文文章,我们的 GCTT 组织会进行翻译。

题图:GoLand 2022.3 RC 发布

刊首语

以下代码输出什么?

package main

import "fmt"

func main() {
    a := (-3) % 2
    b := (-3) % (-2)
    fmt.Println(a, b)
}

A:1 1;B:-1 1;C:-1 -1;D:编译错误

资讯

1、Google Go 风格指南

Go Style Guide 和随附的文档整理了当前编写可读和惯用的 Go 的最佳方法。

2、GoLand 2022.3 RC 发布

正式版不远了。

3、NSA 推荐使用类型安全的语言代替 C/C++

推荐的重点包括 Go 和 Rust。

4、lo 1.35 发布

基于泛型的 Lodash 风格库。

5、rqlite v7.11.0 发布

轻量的、分布式关系数据库。

6、slashbase 1.1 发布

数据库协作工具。

7、chroma 2.4 发布

纯 Go 实现的通用语法高亮库。

8、ElasticSearch Go 8.5 发布

ElasticSearch Go 8.5 官方客户端发布。

9、fzf 0.35.0 发布

Command-line fuzzy finder。

文章

1、Go标准库依赖的那些modules

对于程序员来说,编写的代码依赖标准库是“天经地义”的事情。

2、基于 Twitch 的 Go RPC

类似于 gRPC。

3、在 Go 程序中嵌入提交哈希的 3 种方法

清晰的知晓当前程序使用的哪个提交。

4、鹅厂后台大佬教你Go内存管理!

本文推选自腾讯云开发者社区-【技思广益 · 腾讯技术人原创集】专栏。

5、Go每日一库之实时可视化Go Runtime指标

在浏览器中可以实时看到服务的 runtime 指标信息。

6、成为 Go 高手的 8 个 GitHub 开源项目

想成为 Go 高手吗?那推荐看看这些开源项目。

7、一起看看 Go 1.20 新特性有哪些?

在这篇文章中,一起去Go 1.20 milestone 的 issues 列表中翻翻,提前看看究竟会有哪些新特性加入 Go。

开源项目

1、varint

快速、内存高效的、支持任意位的整型。

2、golang-lru

LRU 算法的实现。

3、pie

slice 和 map 便利、通用的操作。

4、tamarin

内嵌的脚本语言。

5、go-quartz

小型、零依赖的调度库,启发自 Java 的 Quartz。

6、memos

开源、自托管的知识管理和协作系统。

7、pdf

从 PDF 文件中提取文本。

资源&&工具

1、一致性的 log

基于 Go 官方的结构化日志(视频)。

2、Go Time 第 256 期

grpc 和 protobuf。

3、sablier

按需启动容器,在没有活动时自动关闭容器。Docker、Docker Swarm 模式和 Kubernetes兼容。

订阅

这个周刊每周日发布,同步更新在Go语言中文网微信公众号

微信搜索"Go语言中文网"或者扫描二维码,即可订阅。

wechat


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

310825 次点击  
加入收藏 微博
1 回复  |  直到 2022-11-21 11:34:15
jan-bar
jan-bar · #1 · 2年之前

关于那个问题找到了一篇文章:点击跳转

结论是取模结果符号和除数符号相同,与熟悉的数学相违背,机器毕竟不是人啊,就像浮点数(0.1+0.2 != 0.3)一样。

package main

import "fmt"

func main() {
    a := (-3) / 2    // -1
    b := (-3) % 2    // -1
    c := 3 / 2       // 1
    d := 3 / (-2)    // -1
    e := (-3) / (-2) // 1  商的符号符合数学
    f := (-3) % (-2) // -1 余数符号同除数符号
    fmt.Println(a, b, c, d, e, f)
}
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传