nil是什么意思?

nil是什么意思?

问题描述:

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

func branchif() {

    const filename = "tes.txt"                               

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

        fmt.Println(err)

    } else {

        fmt.Printf("%s"contents)

    }

}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
ccmouse 2021-07-20 21:00:26

感谢同学的回答。在这里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作为接口的实例不能调用其方法。

慕移动5255713 2021-07-20 14:36:54

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

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师