go默认零值/空值
作者:互联网
https://learnku.com/go/t/46647
默认值表
类型 | 默认值 |
---|---|
整数 | 0 |
浮动 | 0 |
复数 | 0 个实部和 0 个虚部 |
字节 | 0 |
符文 | 0 |
字串 | “” |
布尔 | 错误 |
数组 | 每个数组的值都为其默认值 |
结构 | 每个字段均为默认值 |
地图 | 无 |
频道 | 无 |
界面 | 无 |
切片 | 无 |
指针无 | |
功能介绍无 |
例子:
让我们看一个例子。使用侧面的菜单进行导航。
整数
package main
import "fmt"
func main(){
var int
fmt.Print(“ int的默认零值:”)
fmt.Println(a)
var b uint
fmt.Print(“ uint的默认零值:”)
fmt.Println(b)
}
输出:
int的默认零值:0
uint的默认零值:0
Float
package main
import "fmt"
func main(){
var a float32
fmt.Print(“ float的默认零值:”)
fmt.Println(a)
}
输出:
浮点数的默认零值:0
复数
package main
import "fmt"
func main() {
var a complex64
fmt.Print("Default zero value of complex: ")
fmt.Println(a)
}
输出:
Default zero value of complex: (0+0i)
字节
package main
import "fmt"
func main() {
var a byte
fmt.Print("Default zero value of byte: ")
fmt.Println(a)
}
输出:
Default zero value of byte: 0
Rune
package main
import "fmt"
func main() {
var a rune
fmt.Print("Default zero value of rune: ")
fmt.Println(a)
}
输出:
Default zero value of rune: 0
字符串
package main
import "fmt"
func main() {
var a string
fmt.Print("Default zero value of string: ")
fmt.Println(a)
}
输出:
Default zero value of string: //An emtpy string. Hence nothing is printed
布尔
package main
import "fmt"
func main() {
var a bool
fmt.Print("Default zero value of bool: ")
fmt.Println(a)
}
输出:
Default zero value of bool: false
数组
数组的默认值是其值的默认值。例如,在下面的代码中,存在两个长度为 bool 的数组。当我们打印时输出为 ** [false false] **
package main
import "fmt"
func main() {
var a [2]bool
fmt.Print("Default Zero Value of an array: ")
fmt.Println(a)
}
输出:
Default Zero Value of a array: [false false]
结构体
** struct 的默认值是其字段的默认值。例如,在下面的代码中,有一个带有两个字段的 struct 示例。一个是 int 类型,另一个是 bool 类型。我们创建此结构的一个实例,并在打印时输出为 {0 false} **
package main
import "fmt"
func main() {
type sample struct {
a int
b bool
}
a := sample{}
fmt.Print("Default Zero Value of an struct: ")
fmt.Println(a)
}
输出:
Default Zero Value of a struct: {0 false}
Map
** map 的默认值为零。 ** 这就是为什么 fmt.Println (a == nil) 的输出为 true 的原因。将地图传递到 ** fmt.Println ** 时,它将尝试在地图中打印值。这就是为什么输出是 map [] 的原因
package main
import "fmt"
func main() {
var a map[bool]bool
fmt.Println(a == nil)
fmt.Print("Printing map: ")
fmt.Println(a)
}
输出:
true
Printing map: map[]
频道
package main
import "fmt"
func main() {
var a chan int
fmt.Print("Default zero value of channel: ")
fmt.Println(a)
}
输出:
Default zero value of channel:
接口
package main
import "fmt"
func main() {
var a chan interface{}
fmt.Print("Default zero value of interface: ")
fmt.Println(a)
}
输出:
Default zero value of interface: < nil>
切片
切片的默认值为 ** nil。 这就是为什么 fmt.Println (a == nil) 的输出为 true 的原因。当将切片传递到 ** fmt.Println ** 时,它将尝试打印切片中的值。这就是为什么输出是 []
package main
import "fmt"
func main() {
var a []int
fmt.Println(a == nil)
fmt.Print("Printing slice: ")
fmt.Println(a)
}
输出:
true
Printing slice: []
函数
package main
import "fmt"
func main() {
var a func()
fmt.Print("Default Zero Value of a func: ")
fmt.Println(a)
}
输出:
Default Zero Value of a func: <nil>
指针
package main
import "fmt"
func main() {
var a *int
fmt.Print("Default Zero Value of a pointer: ")
fmt.Println(a)
}
输出:
Default Zero Value of a pointer: <nil>
标签:Default,Print,fmt,空值,Println,func,go,main,零值 来源: https://www.cnblogs.com/cheyunhua/p/16071132.html