当前位置:网站首页>Golang nil的妙用
Golang nil的妙用
2022-08-10 01:16:00 【@航空母舰】
nil是什么
在Go语言中,布尔类型的"0"(初始值)为false,数值类型的"0"为0,字符串类型的"0"为空字符串"",而指针/切片/映射/通道/函数和接口的"0"即为nil

nil不是关键字
func main() {
var _ map[string]int = nil
nil := 123
fmt.Println(nil)
var coverNil map[string]int = map[string]int{"str": nil}
fmt.Println(coverNil)
}nil的意义是什么
- 当变量的类型为指针时,nil表示该指针不指向任何值,即不能从指针中取值。
- 当变量的类型为切片时,nil表示该切片没有backing array(不知道怎么翻译好),即切片的长度和容量都为0,系统没有为该切片分配存储空间。
- 当变量的类型为映射/通道/函数时,nil表示该变量未初始化。未初始化的映射只能读不能写。未初始化的通道只能读不能写,且读会造正阻塞。未初始化的函数不能被调用。
- 当变量的类型为接口时,nil表示该变量没有值,也不能是一个空指针。接口由两部分组成,一部分是类型,另一部分是值,只有当类型和值都为nil时,该变量才等于nil。
nil有什么用
边栏推荐
猜你喜欢
随机推荐
XSS详解及复现gallerycms字符长度限制短域名绕过
XSS高级 svg 复现一个循环问题以及两个循环问题
JVM :运行时数据区-虚拟机栈
【软考软件评测师】软件测试基础知识
hopscotch game
Qt的pro文件递归搜寻添加文件
浏览器中的history详解
Teach you how to write performance test cases
3511. 倒水问题
Summary of Web Performance Testing Models
Unity image使用长图后 图片很糊
Unity vertex animation
万字总结:分布式系统的38个知识点
嵌入式Qt-实现两个窗口的切换
OOD论文:Revisit Overconfidence for OOD Detection
什么是 PWA
[QNX Hypervisor 2.2用户手册]10.14 smmu
[语法糖] 关于类别字符串到类别数字id的映射
HCIP——综合交换实验
【无标题】









