go类型的默认值,注意pointer, channel, func, interface, map, or slice在没初始化的情况下
nil is a predeclared identifier representing the zero value for a pointer, channel, func, interface, map, or slice type.
Type must be a pointer, channel, func, interface, map, or slice type
package main
import "fmt"
func main() {
var slic []string
var m map[string]interface{}
var i interface{}
var ptr *int
var c chan string
var f func()
var s *struct{}
fmt.Println(slic,m,i,ptr,c,f,s)
if slic == nil{
fmt.Println("true")
}
if m == nil{
fmt.Println("true")
}
}
//reset
[] map[] <nil> <nil> <nil> <nil> <nil>
true
true
进程 已完成,退出代码为 0
package main
import "fmt"
type Tess struct {
s string
i int
}
func main() {
var s Tess //空值 等于 Tess{} { 0}
var ptr *Tess //指针 <nil>
var ss = Tess{} //空值 等于 var s Tess { 0}
var prr = new(Tess) //&{ 0}
var sss = Tess{ // {test 100}
s: "test",
i: 100,
}
var slic []int //nil 值 = [] // nil值
var slicc = make([]int,0) //空值 []
var slicccc= make([]int,5) //零值 [0 0 0 0 0]
fmt.Println(s,ss,sss,ptr,prr)
fmt.Println(slic,slicc,slicccc)
var m map[string]string //map[] //nil值
var mm = make(map[string]string)// map[] 空值
var mmm = map[string]string{"test":"test"} //map[test:test]
var mmmm = map[string]string{} //map[] 空值
fmt.Println(m,mm,mmm,mmmm)
var c chan string
fmt.Println(c) //<nil>
c = make(chan string,1)
fmt.Println("空值",c) //空值 0xc0000441e0
c <-"test"
cc:= <- c
fmt.Println(cc) //test
for i :=range cc{
fmt.Println(i)
// 0
// 1
// 2
// 3
}
var f func() //函数
var ff = func() {
fmt.Println("OK")
}
fmt.Println(f) //nil
fmt.Println(ff) // 0xb3cae0
}
结果
{ 0} { 0} {test 100} <nil> &{ 0}
[] [] [0 0 0 0 0]
map[] map[] map[test:test] map[]
<nil>
test
0
1
2
3
<nil>
0x32cae0
分类:
GO
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2018-12-21 MySQL半同步复制
2018-12-21 KeepAlived+MySQL互为主从
2018-12-21 Docker跨主机网络解决方案