zoukankan      html  css  js  c++  java
  • go语言学习十六

    • go 语言中的 nil 是一个代表引用(切片、映射、通道)、指针、函数、接口 零值的预定义变量。
    • 值类型不可能为 nil . 所以数字、结构体、字符串 不可能为空 (不用担心空指针异常了)
    • 设置 引用变量 = nil 和声明后未赋值的初始化零值状态是一样的。引用类型 = nil 不是未初始化状态,仍可以调用它们的方法获得有意义的值。
    • 指针为 nil 的状态 必须重新指定一个地址,否则不能对 nil 地址位置的值修改操作
    • 接口为 nil 的状态 就是一个空接口,函数为 nil 的状态 不能调用 编译可以通过但是会发生运行时错误。
    /**
    	// 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
    	var nil Type
    */
    package main
    
    import "fmt"
    
    func main() {
    	
    	//引用 <切片、映射、通道>
    	var x map[string]string //显式初始化为 = nil  和声明类型后不明确赋值效果都是一样的
    	fmt.Println(x)          //map[] , x == nil : true
    
    	var y []int    // = nil
    	fmt.Println(y) //[]  ,  x == nil : true
    
    	//指针
    	var z *int     // = nil
    	fmt.Println(z) //<nil>  , x == nil : true
    
    	//函数
    	var f func(int) int
    	fmt.Println(f) //<nil>  , x == nil : true
    
    	//接口
    	var i interface{}
    	fmt.Println(i) //<nil>  , x == nil : true
    
    }
    
  • 相关阅读:
    窗口切换快捷键
    简单排序算法
    (转)Zen Coding 让 Notepad++ 代码书写健步如飞
    (转)图解SQL的Join
    第6章 AJAX
    今天是五四青年节
    看到的php的小知识
    (转)Notepad++配合QuickText打造快速高效的文本编辑器
    一种非常好的产生"唯一"临时文件的办法
    (转)linux 目录结构及其含义
  • 原文地址:https://www.cnblogs.com/scala/p/9599932.html
Copyright © 2011-2022 走看看