关于零值和nil

1. 零值

零值是指当你声明变量(分配内存)并未显式初始化时,始终为你的变量自动设置一个默认初始值的策略。

对于值类型:布尔类型为 false, 数值类型为 0,字符串为 "",数组和结构会递归初始化其元素或字段,即其初始值取决于元素或字段。
对于引用类型: 均为 nil,包括指针 pointer,函数 function,接口 interface,切片 slice,管道 channel,映射 map。
因为切片是引用类型的,所以其零值也是 nil:例如下列代码

package main
import "fmt"
import "strings"
func main(){
var s []string
fmt.Println(s, len(s), cap(s)) // [] 0 0
fmt.Println(s == nil) // true
s = append(s, "Hello")
s = append(s, "World")
fmt.Println(strings.Join(s, ", ")) // Hello, World
}


具体内容参考:
https://zhuanlan.zhihu.com/p/295048056

posted @   yyyyyllll  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示