ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

go默认零值/空值

2022-03-29 13:02:17  阅读:173  来源: 互联网

标签:Default Print fmt 空值 Println func go main 零值


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有