nil是什么意思?

来源:2-4 条件语句

简笔而又有意义

2021-07-18 22:30:09

问题描述:

判断句中经常会看到nil,请问老师nil是什么呢?可以解释一下吗?

func branchif() {

    const filename = "tes.txt"                               

    if contentserr := ioutil.ReadFile(filename); err != nil { 

        fmt.Println(err)

    } else {

        fmt.Printf("%s"contents)

    }

}


写回答

2回答

ccmouse

2021-07-20

感谢同学的回答。在这里err!=nil就是这个意思。

我再作一些系统的补充。

Go语言所有的变量在申明/定义的时候,如果我们不赋初值,就会是“零值”。比如

var n int

这里n就是0。类似,bool类型是false,string是""。

以下这些类型初始值,也就是“零值”,都是nil,笼统的说就是“空”的意思。我们后面都会陆续说到:

  • 指针。nil指针当然不能取值。但是nil指针也能调用其指向的类型的方法。在结构体处会说到。

  • slice切片。nil切片就是空切片。但是nil切片是合法的,能够参与所有的切片运算,比如append增加元素等。

  • map。nil map不能进行任何操作。需要用make来制作一个map。

  • channel。nil channel可以进行数据的存取,但是都会被block。nil channel配合select可以巧妙完成一些程序逻辑。我在channel和select会演示。

  • 接口。这里的err就是一个error接口的实例,在没有错误的情况下它是nil。nil作为接口的实例不能调用其方法。

0

慕移动5255713

2021-07-20

nil表示空值,上述代码中从文件中读取内容,返回两个参数,第一个位文件内容,第二个为错误,err!=ni ,即是对错误的判断,错误不为空 表示读取文件的过程报错了,代码中的if语句执行,打印出错误信息,否则 err为空,表示读取文件内容成功,打印出文件中的内容

0

0 学习 · 1399 问题

查看课程