zoukankan      html  css  js  c++  java
  • go语言变量的零值和nil

    Go语言中无论是全局变量还是局部变量,只要定义了一个变量都有默认的0值
    int/int8/int16/int32/int64/uint/uint8/uint16/uint32/uint64/byte/rune/uintptr的默认值是0
    float32/float64的默认值是0.0
    bool的默认值是false
    string的默认值是""
    pointer/function/interface/slice/channel/map/error的默认值是nil
    其它复合类型array/struct默认值是内部数据类型的默认值
    
    package main
    import "fmt"
    func main() {
    	var intV int // 整型变量
    	var floatV float32 // 实型变量
    	var boolV bool // 布尔型变量
    	var stringV string // 字符串变量
    	var pointerV *int // 指针变量
    	var funcV func(int, int)int // function变量
    	var interfaceV interface{} // 接口变量
    	var sliceV []int // 切片变量
    	var channelV chan int // channel变量
    	var mapV map[string]string // map变量
    	var errorV error // error变量
    
    	fmt.Println("int = ", intV) // 0
    	fmt.Println("float = ", floatV) // 0
    	fmt.Println("bool = ", boolV) // false
    	fmt.Println("string = ", stringV) // ""
    	fmt.Println("pointer = ", pointerV) // nil
    	fmt.Println("func = ", funcV) // nil
    	fmt.Println("interface = ", interfaceV) // nil
    	fmt.Println("slice = ", sliceV) // []
    	fmt.Println("slice = ", sliceV == nil) // true
    	fmt.Println("channel = ", channelV) // nil
    	fmt.Println("map = ", mapV) // map[]
    	fmt.Println("map = ", mapV == nil) // true
    	fmt.Println("error = ", errorV) // nil
    
    	var arraryV [3]int // 数组变量
    	type Person struct{
    		name string
    		age int
    	}
    	var structV Person // 结构体变量
    	fmt.Println("arrary = ", arraryV) // [0, 0, 0]
    	fmt.Println("struct = ", structV) // {"" 0}
    }
    

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    css 盒模型
    Dom事件类-文档对象模型
    BFC-边距重叠解决方案
    三栏布局的五种方式--左右固定,中间自适应
    为什么必须先写组件再写vue的实例
    H5跳小程序安卓机出现白屏的问题
    关于iframe标签的src属性
    子组件让父组件进行刷新vuex
    html 插件
    git 其他merge
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/15748047.html
Copyright © 2011-2022 走看看