当前位置:网站首页>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有什么用
边栏推荐
- volatile 关键字(修饰符 volatile 告诉编译器,变量的值可能以程序未明确指定的方式被改变)
- 【web渗透】SSRF漏洞超详细讲解
- Unity vertex animation
- y92.第六章 微服务、服务网格及Envoy实战 -- Envoy基础(三)
- 破产企业的职工退休怎么办?
- C# 四舍五入 MidpointRounding.AwayFromZero
- Teach you how to write performance test cases
- 用于X射线光学器件的哈特曼波前传感器
- 3438. 数制转换
- unity 报错 Unsafe code may only appear if compiling with /unsafe. Enable “Allow ‘unsafe‘ code“ in Pla
猜你喜欢
随机推荐
[转] Typora_Markdown_图片标题(题注)
[网鼎杯 2020 青龙组]AreUSerialz
ITK编译remote库
3438. 数制转换
Unity image使用长图后 图片很糊
Summary of Web Performance Testing Models
odoo公用变量或数组的使用
Unity editor extension interface uses List
【论文粗读】(NeurIPS 2020) SwAV:对比聚类结果的无监督视觉特征学习
Shader Graph learns various special effects cases
Linux(Centos7)服务器中配置Mysql主从数据库,以及数据库的安装,防火墙操作
进程管理和任务管理
【UNR #6 C】稳健型选手(分治)(主席树)(二分)
【报错】ModuleNotFoundError: No module named ‘scp‘
volatile 关键字(修饰符 volatile 告诉编译器,变量的值可能以程序未明确指定的方式被改变)
跨部门沟通的技巧
夏克-哈特曼波前传感器
信息化和数字化的核心差异
【kali-密码攻击】(5.2.1)密码分析:Hash Identifier(哈希识别)
Web性能测试模型小结