原文地址:https://go.dev/blog/deconstructing-type-parameters
译者评论
本文通过 slices.Clone 泛型函数介绍了 Go 是如何使用类型推断完成参数类型的解构。简单来说,如果第一个类型参数是一个复合类型,则可以通过第二、第三或更多的类型参数约束复杂类型中的类型参数,而类型推断则可以通过第一个参数推断出后续类型参数的实际类型。另外本文还说明为消除歧义而引入 ~ 符号,即用于指定类型的底层类型。
原文地址:https://go.dev/blog/deconstructing-type-parameters
译者评论
本文通过 slices.Clone 泛型函数介绍了 Go 是如何使用类型推断完成参数类型的解构。简单来说,如果第一个类型参数是一个复合类型,则可以通过第二、第三或更多的类型参数约束复杂类型中的类型参数,而类型推断则可以通过第一个参数推断出后续类型参数的实际类型。另外本文还说明为消除歧义而引入 ~ 符号,即用于指定类型的底层类型。
在学习 log/slog 标准包的过程中,我搜索到一篇全面讲解 log/slog 标准包的文章,感受良多,故将其翻译成中文并分享到微信公众号。
原文地址:https://betterstack.com/community/guides/logging/logging-in-go/
递归版本的归并排序。
flag
包定义了一系列函数,可用于定义命令行参数,支持的参数类型如下:
在命令行工具的开发过程中,我们常常需要设置一个同时支持短名称和长名称的选项,如 -d
等价于 --debug
、-p
等价于 --password
。在使用 Go flag 包的情况下,该需求的实现相当简单,只需要定义两个不同的 flag 指向同一个变量即可。
本文主要介绍如何基于 Docker 生成容器化应用以及配置 Nginx 来实现 Web 服务的负载均衡,包含以下内容: Go 简易 Web 程序(hello world) 通过 Dockerfile 生成镜像 Nginx 配置 Docker Compose 多容器启动 Go Web 程序 本次配置使用 Go Web 程序作为后端服务,其作用是接收请求并返回“hello-world”,代码如下: // main.go package main import ( "log" "net/http" "os" ) func main() { logFile, err := os.OpenFile("/var/log/app.log",...
Four days ago, I got a requirement to build an academic website for yunzila~. This reminds me of my previous blog experience. Since my blog is built with Hugo, I started to find an academic theme which is designed for Hugo. Here is a link to Hugo themes, and then I find the Academic theme developed by gcushen which meets my needs.
Roadmap for Go Slice.