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}
    }
    

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

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

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

  • 相关阅读:
    JQuery封装的ajax
    DOM节点操作
    ES6中的let和const
    CSS cursor 属性
    ui-router 视图嵌套时指定二级视图显示默认页面
    数组去重的几种方法
    basic_consume() got multiple values for keyword argument 'queue'
    perl改造成bash---结果写入xml
    springmvc 启动报 java.lang.NoSuchMethodError: org.springframework.core.GenericTypeResolver.resolveTypeArguments(Ljava/lang/Class;Ljava/lang/Class;)[Ljava/lang/Class;
    web项目部署名和项目名不一致
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/15748047.html
Copyright © 2011-2022 走看看