美文网首页
go语言陷阱之七:不能用nil初始化无类型变量

go语言陷阱之七:不能用nil初始化无类型变量

作者: wu_sphinx | 来源:发表于2015-07-25 16:35 被阅读522次

The "nil" identifier can be used as the "zero value" for interfaces, functions, pointers, maps, slices, and channels
go里面的nil可以作为接口、方法、指定等(后面不知怎么翻译)的零值,但一定得有类型。
先上代码:

package main

func main() {
    var x = nil //error

    _ = x
}
# command-line-arguments
./hello.go:4: use of untyped nil

至此,go语言中变量似乎都有一个明确的归属,对于coder来说,才能做到心中有数。
找到原因后,上正确示例:

package main

func main() {  
    var x interface{} = nil

    _ = x
}

又避免了一坑

相关文章

  • go语言陷阱之七:不能用nil初始化无类型变量

    The "nil" identifier can be used as the "zero value" for ...

  • 【Golang 基础】Go 语言的变量与常量

    Go 语言的变量与常量 变量声明,初始化与赋值 (示例代码) 变量的声明格式:var <变量名称> [变量类型];...

  • GO

    一、基础 1.变量 强类型语言 声明单个变量Go语言在声明变量时,自动对变量对应的内存进行初始化操作,不同于C语言...

  • Go 语言基础——变量常量的定义

    go语言不支持隐式类型转换,别名和原有类型也不能进行隐式类型转换go语言不支持隐式转换 变量 变量声明 声明变量不...

  • Go语言-变量

    摘自Go语言指南 变量的初始化 变量声明可以包含初始值,每个变量对应一个。如果初始化值已存在,则可以省略类型;变量...

  • golang 学习笔记 1.1 变量

    变量 Go 是静态类型语言,不能在运行期改变变量类型。使用关键字 var 定义变量,自动初始化为零值。如果提供初始...

  • Go语言常量和输入输出

    常量 Go语言常量和C语言差不多Go语言定义常量const不能少,数据类型可以不写Go语言定义常量不能用:=Go语...

  • Go语言常量和变量

    变量 Go语言变量的定义 定义变量的格式(先定义再初始化)var 数据名称 数据类型数据名称 = 值; 定义变量的...

  • Go语言学习笔记-变量与作用域

    Go 语言变量的声明 Go 语言是静态类型语言,因此变量 (variable) 是有明确类型的,编译器也会检查变量...

  • 【Golang】golang中使用defer关闭file句柄总是

    实例: 查看源码发现,go标准包中,如果打开文件出错,将返回nil的文件类型,而nil类型的变量调用Close()...

网友评论

      本文标题:go语言陷阱之七:不能用nil初始化无类型变量

      本文链接:https://www.haomeiwen.com/subject/pzkmqttx.html