标签: go
包含此标签的文章 "go".
确定 stdout/stderr 是否已经被重定向
有个场景是当日志输出到屏幕时增加颜色,当输出到普通文件或者重定向就去掉颜色,因为颜色是通过 ANSII Code 控制的,看起来像是乱码一样。 在 Unix 中,万物皆文件,那么就可以通过读取文件属性确认。 例如在 go 代码中: --- 原文:GitHub Issue 259
使用 vscode 编辑查看 go 标准库和编译器代码
如果直接使用 vscode 打开刚克隆下来的 go 标准库代码,那么会收到一堆错误。 第一,go 1.21 使用标准的 toolchain 版本约定,而 go 标准库始终会使用下一个版本号约定,所以 go 1.21 编译器无法在 go 1.22 上工作。 第二,go 标准库源码在 src 目录中,还有 misc 包,主
golang generic nil check 泛型空指针检查
目前 golang 无法支持对泛型参数空检查,例如下面代码就会报错: 解决方式只能把参数 T 改为指针: 但是如果我们需要写一个函数可以把任意参数转化为指针,比如 aws sdk go v2中几乎所有参数都是指针类型,所以提供了一系列的函数,例如取 string 指针: 如果写一个泛型的取指针的函数就会遇到上面 IsN
容器资源可见性问题与 GOMAXPROCS 配置
Go 程序启动时候会根据 CPU 数量设置 GOMAXPROCS,比如下面的程序中在 8 核处理下输出为 8。 当我们使用 Docker 的时候也是如此,不过当我们使用 docker run 的时候同时限制了 CPU 数量,那么程序中会正常显示吗? 不会,比如 docker run --cpus=2 IMAGE,输出还
vscode-go 设置 lint 不强制检查对包公开类型是否注释
vscode-go 插件使用 golint 作为默认代码风格检查工具,而 golint 需要对包公开类型等需要注释说明用途,而且必须以类型名称开头。 所以经常会遇到风格检查下面的错误: 但是对于国内的公司而言,不能只用英语注释吧,或者中英文混杂的注释,如下所示: 代码要定义一个们,所以我需要注释说明这是个门,想想都很滑