最新 最热

Go语言中的命名返回值

这里的 sum 和 product 就是命名返回值,可以在函数体内直接使用它们,而不需要再次声明。

2023-08-21
1

Go:命名返回值解决第三方包panic问题的分析

在Go语言中,panic是一种运行时错误,通常在代码中出现了无法处理的错误时触发。例如,第三方库可能会在网络请求超时时触发panic。

2023-08-21
0

Go: 变量命名和覆盖, 一种特殊情况的探究

在 Go 语言中,你可以使用 := 运算符进行变量声明和初始化。这个运算符能够根据右侧表达式的类型推断变量的类型。例如:

2023-08-21
1

go 使用 grpc 通讯

Go是一种强类型、静态编译的语言,grpc是一种高性能的、开源的远程过程调用框架。在Go语言中使用grpc可以轻松地实现跨网络的通信,提供了高效的序列化、压缩和流控制等功能。...

2023-08-21
1

Go语言中常见100问题-#89 Writing inaccurate benchmarks

我们不要猜测程序性能,在对代码进行优化的时候,可能会有很多因素发挥作用,所以需要综合考虑,进行测试验证准没错。然而,编写benchmark并不是一件简单的事情,很容易因编写错误的benchmark导致做出不正确优化。本章节将列举一...

2023-08-17
1

Go语言中常见100问题-#88-2 the iotest package

iotest包 https://pkg.go.dev/testing/iotest 提供了测试 readers和writers 函数集合。很多Gopher不知道有这个包,本文讲如何使用该包,方便我们编写测试代码。

2023-08-17
1

Go语言中常见100问题-#40 Useless string conversions

当编码操作的类型既可以是 []byte 又可以是 string时,大多数程序员倾向使用string类型,因为这样可能更方便。但是大多数的 I/O 操作采用的类型是 []byte。例如 io.Reader、io.Writer 和 io.ReadAll. 如果拿到的类型是st...

2023-08-17
1

Go语言中常见100问题-#39 Under-optimized string concatenation

在Go语言中,字符串连接主要有两种方法,其中一种在某些时候是非常低效的,通过本文学习我们应该掌握在不同的场景下选择最合适的方法。

2023-08-17
1

Go语言中常见100问题-#36 Not understanding the concept of a rune

通过字符可以简化字符集定义,但是在Unicode中,使用代码点来标识字符,字符集中的每个字符都有唯一的代码点值。例如,中文汉字的代码点值是U+6C49. 如果采用UTF-8编码,汉字存储占3个字节:0xE6,0xB1,0x89. 理解这些非常重要,因...

2023-08-17
1

Go语言中常见100问题-#35 Using defer inside a loop

defer语句会延迟语句在函数返回时执行.例如,如果资源最后必须要关闭,可以使用defer避免在每个return返回的地方调用close操作。但是,在for循环中使用defer会存在问题,很多Gopher没有意识到这一点。下面通过一个问题代码来...

2023-08-17
1