Browsed by
作者:徐新华

专注互联网技术
官方不推荐使用 Goroutine ID,但它自己却使用了:原来是这么做的

官方不推荐使用 Goroutine ID,但它自己却使用了:原来是这么做的

在操作系统中,每个进程都会有一个唯一的进程编号,每个线程也有自己唯一的线程编号。同样在 Go 语言中,每个 Goroutine 也有自己唯一的 Go 程编号(下文简称为 goid),这个编号在 panic 等场景下经常遇到。虽然 Goroutine 有内在的编号,但是 Go 语言却刻意没有提供获取该编号的接口。 故意设计没有 goid 根据官方的相关资料显示,Go 语言刻意没有提供 goid 的原因是为了避免被滥用。因为大部分用户在轻松拿到 goid 之后,在之后的编程中会不…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo系列教程 — 定制篇4:自定义 Renderer,增强或替换模板引擎

Echo系列教程 — 定制篇4:自定义 Renderer,增强或替换模板引擎

Render,顾名思义,要进行页面渲染。Go 语言不但自带有强大的 http 库,还自带了 HTML 模板引擎。Echo 框架对模板引擎进行了一些额外处理,并提供了给用户自定义页面渲染的接口。本文就相关问题进行探讨。 模板渲染 Echo 框架的 Context 接口提供了下面的方法进行页面渲染: // echo 包中 Context 接口的方法 Render(code int, name string, data interface{}) error 其中,code 是 HT…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Go1.14 的这个改进让 Gopher 生活更美好

Go1.14 的这个改进让 Gopher 生活更美好

Go1.14 的 go test -v 支持流式输出 testing 包是 Go 标准库中我最喜欢的程序包之一,不仅是它具有低干扰的单元测试方法,而且在 Go 的整个生命周期中,它可以改善、提高生活质量 ^_^。 在 Go1.14 中,go test -v 将使 t.Log 的输出变成流式,而不是在测试运行结束之前进行存储,最后一起输出。看一个例子: package main import ( “fmt” “testing” “time” ) func TestLogStre…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo系列教程 — 定制篇3:自定义 Logger,用你喜欢的日志库

Echo系列教程 — 定制篇3:自定义 Logger,用你喜欢的日志库

在知识星球简书项目中,我们分析对比了目前的一些日志库。虽然 Go 标准库有一个 log,但功能有限,所以才出现了很多第三方的日志库。在 用 Go 实现一个简书 8:日志记录和优秀库的学习 中,我们得出结论,推荐大家使用 zerolog。现在我们就将 zerolog 集成进 Echo 框架中。 Echo 默认的 Logger Echo 日志记录的默认格式是 JSON,可以通过修改标头来更改,即 Echo#Logger.SetHeader(io.Writer)。 Log Head…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Go 官宣:新版 Protobuf API

Go 官宣:新版 Protobuf API

原文作者:Joe Tsai, Damien Neil 和 Herbie Ong 原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffers 发布时间:2020-03-02 翻译:polaris,Go 语言中文网 简介 我们很高兴地宣布,用于 Google 的语言无关数据交换格式 protocol buffers 的新版 Go API 发布了,这是一次重大的版本升级。 新 API 的动机 Go 的第一个 prot…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo 系列教程 — 定制篇2:自定义 Validator,进行输入校验

Echo 系列教程 — 定制篇2:自定义 Validator,进行输入校验

上一篇讲 Binder 时提到,参数自动绑定和校验是 Web 框架很重要的两个功能,可以极大的提升开发速度,并更好的保证数据的可靠性(服务端数据校验很重要)。本节,我们就一起看看如何自定义 Echo 的表单校验功能。 不同于 Binder,Echo 并没有内置数据校验的能力,也就是没有默认的 Validator 实现。然而,你可以很方便的集成第三方的数据校验库。跟 Binder 类似,Echo 提供了一个 Validator 接口,方便将第三方数据校验库集成进来。 Valid…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo 系列教程 — 定制篇 1:自定义 Binder,处理 Request 数据绑定

Echo 系列教程 — 定制篇 1:自定义 Binder,处理 Request 数据绑定

Web 开发,数据获取和校验是两个最基本的功能。在数据获取时,我们可以通过标准库的 *http.Request 提供的相关功能进行获取。然而这样效率是很低,重复工作较多,而且考虑到数据自动校验,我们更应该做到自动绑定。 在讲述 Echo 的 Binder 前,先探讨一下客户端数据一般通过什么方式发送给服务端的。 客户端如何传递数据给服务端? 这个问题其实对大部分人来说太简单了,然而,很多客户端的人却不清楚。工作中,我接触过不少客户端的人,对于数据怎么传递给服务端,他们是没有概…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Echo 系列教程 — 定制篇 0:让 Echo 更强大、更好用

Echo 系列教程 — 定制篇 0:让 Echo 更强大、更好用

一个强大的框架,一定是可以定制的,或者说可以扩展,能够根据用户自己的需求进行改变、增强,甚至某些功能的替换。作为一个强大的框架,Echo 必然也是可以定制、可以扩展的。本篇起,我们一起探讨如何对 Echo 框架进行定制或扩展,打造成符合你个性需求的框架。 定制化主要包含如下一些方面: 自定义 Binder,用来处理 Request 数据绑定 自定义 Validator,用来处理表单验证 自定义 Logger,用你喜欢的日志库 自定义 Renderer,增强或替换模板引擎 自定…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
2020 年为什么要选择 Go 并放弃 Python

2020 年为什么要选择 Go 并放弃 Python

过去一段时间,Go 语言中文网推过挺多 Python 相关的公众号,很多人诧异:为什么推的都是 Python 的呢?其实主要原因是因为 Python 类的公众号实在太多了,而且很多粉丝都特别多,我也挺纳闷的。不过他们值得我学习,也说明 Go 还有很长的路要走。 为了证明 Go 语言中文网坚持做 Go 语言,推广 Go、分享 Go,为 Go 的发展做贡献,这两天会分享两篇 Go 和 Python 的对比文章。欢迎指正。 您会在 Python 和 Go 之间选择哪个?如果您对 G…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...
Go 程序员的演变,Rob Pike 亮了

Go 程序员的演变,Rob Pike 亮了

通过一个阶乘函数的不同写法将 Go 程序员进行划分。 初级 Go 程序员 package fac func Factorial(n int) int { res := 1 for i := 1; i <= n; i++ { res *= i } return res } 函数式 Go 程序员 package fac func Factorial(n int) int { if n == 0 { return 1 } else { return Factorial(n -…

阅读全文 阅读全文


好差啊挺差的一般般还行很赞 (还没有人评分,赶紧评一下)
Loading...