Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Golang 零值、空值与空结构

Golang 零值、空值与空结构的使用小结

作者:Penge666

本文主要介绍了Golang 零值、空值与空结构的使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

零值

nil

空值(nil) :在Go语言中,nil是一个预定义的标识符,用于表示指针、通道(channel)、映射(map)、切片(slice)、函数以及接口类型的“零值”。它相当于这些类型的“无”或“不存在”。例如,一个nil指针不指向任何内存地址,而一个nil通道不连接任何发送者或接收者。

空结构

作用二

使用 chan struct{} 代替 chan bool 在 goroutines 之间传递信号。使用 bool 容易让人不理解该值,true or false,但是使用 chan struct{} 就很清楚,我们不在乎值,只关心发生的事儿,更容易表达清楚一些。

作用一

用来强制使用字段名来初始化结构体,防止未命名的初始化方式。

正常的结构体

type Q struct {
    X, Y int
}

// 两种初始化方式都可以
q1 := Q{X: 1, Y: 1}  // 推荐:使用字段名
q2 := Q{1, 1}        // 不推荐:按位置初始化

添加 _ struct{} 后的结构体

type Q struct {
    X, Y int
    _    struct{}  // 添加这个字段
}

// 现在只能这样初始化
q1 := Q{X: 1, Y: 1}  // ✅ 编译通过

// 这样会报错
q2 := Q{1, 1}        // ❌ 编译错误:too few values in struct initializer

到此这篇关于Golang 零值、空值与空结构的使用小结的文章就介绍到这了,更多相关Golang 零值、空值与空结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文