nil的使用

题目:

下面赋值正确的是:

1
2
3
4
A. var x = nil
B. var x interface{} = nil
C. var x string = nil
D. var x error = nil

答案解析:

​ BD。

​ 在 Go 语言中,nil 是一个预定义的标识符,用于表示空值或空指针。根据不同的类型,可以使用不同的方式来赋值为 nil。在选项 B 中,使用了空接口类型(interface{}),可以将其赋值为 nil。在选项 D 中,使用了 error 类型,也可以将其赋值为 nil。

​ 选项 A 和选项 C 是不正确的。在 Go 语言中,nil 不能直接赋值给变量,而且字符串类型和 nil 之间不存在直接赋值的语义。

​ 因此,选项 B 和选项 D 是正确的方式来将变量赋值为 nil。

以下解析来自 Go语言中文网

​ 参考答案及解析:BD。这道题考的知识点是 nil。nil 只能赋值给指针、chan、func、interface、map 或 slice 类型的变量。强调下 D 选项的 error 类型,它是一种内置接口类型,看它的源码就知道,所以 D 是对的。

1
2
3
type error interface {
Error() string
}

nil的使用
http://example.com/2023/05/28/Go每日一题/nil的使用/
作者
Feng Tao
发布于
2023年5月28日
更新于
2023年5月28日
许可协议