当前位置:网站首页>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有什么用
边栏推荐
猜你喜欢
跳房子游戏
grafana9配置邮箱告警
OpenSSF的开源软件风险评估工具:Scorecards
C# rounding MidpointRounding.AwayFromZero
XSS详解及复现gallerycms字符长度限制短域名绕过
Aptos 深度解读:机遇、挑战与风险
用于X射线光学器件的哈特曼波前传感器
为什么字符串一旦创建就不可以改变?
Chip Information|Semiconductor revenue growth expected to slow to 7%, Bluetooth chip demand still growing steadily
惊掉你下巴,程序员编码竟然可以被 996 指数化
随机推荐
你有对象类,我有结构体,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang结构体(struct)的使用EP06
【软考软件评测师】软件测试基础知识
hopscotch game
[网鼎杯 2020 青龙组]AreUSerialz
Solve the problem of sed replacement text containing special characters such as "/" and "#"
y92.第六章 微服务、服务网格及Envoy实战 -- Envoy基础(三)
什么是一网统管?终于有人讲明白了
不是吧,连公司里的卷王写代码都复制粘贴,这合理?
Solidity最强对手:MOVE语言及新公链崛起
高并发+海量数据下如何实现系统解耦?【下】
Interdepartmental Communication Skills
跳房子游戏
微透镜阵列的高级模拟
Initial attempt at UI traversal
五种定位——粘性定位
DALL·E-2是如何工作的以及部署自己的DALL·E模型
unity 报错 Unsafe code may only appear if compiling with /unsafe. Enable “Allow ‘unsafe‘ code“ in Pla
【报错】ModuleNotFoundError: No module named ‘paramiko‘
HCIP——综合交换实验
Unity editor extension interface uses List