Golang 值得注意的地方

时间:2022-05-05
本文章向大家介绍Golang 值得注意的地方,主要内容包括interface 赋值 nil Pointer 之后,变成 non-nil、类型判断的返回值有 2 种、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

Golang 值得注意的地方

golang 的语法和使用方式都非常简单明了,没有花哨的语法糖,也没有多余的关键字。 但是即使是这么简洁的语言,仍然有一些不那么直白,需要注意的地方,比如下面2点。

interface 赋值 nil Pointer 之后,变成 non-nil

interface 由2部分组成, typevalue ,调用 func f 的时候,out 的 type 设置为 *bytes.Buffer, value 设置为 nil。 此时 out != nil,因为虽然 out 的 value == nil, 但是 type !=nil 在写代码时如果不注意这里,很容易导致运行时的 panic

类型判断的返回值有 2 种

golang 中可以通过类型判断来进行转型。 类型判断时,转型的代码可以返回一个值,也可以返回2个值(附加判断结果 ok)。

同一段代码的返回值,却有2种情况,channel和map也有上面的现象:(如以下代码都是正确的)

这种语法的实现简单来说,就是 golang 在类型判断时,会根据语法树检查 = 左边是否有 comma(也就是逗号),如果有的话就返回2个值,没有就返回一个值。