Go学习每日一问(12)-cap和空接口
文章目录
每次学习并整理一个Golang的知识点,每天进步一点点。今天学习下cap和空接口的知识点🤔。
代码片段
1.关于 cap() 函数的适用类型,下面说法正确的是()
- A. array
- B. slice
- C. map
- D. channel
2.下面这段代码的输出结果?
|
|
- A. nil
- B. not nil
- C. compilation error
3.下面这段代码输出什么?
|
|
- A. runtime panic
- B. 0
- C. compilation error
思考后看下方答案…
答疑解惑
参考答案:
1. ABD go语言内置函数cap(),返回指定类型的容量;
- len()可以用来查看数组或切片的长度,在数组中由于长度固定不可变,因此len()和cap()的值永远相同;
- cap()可以用来查看数组或切片的容量;
- cap()与channel搭配,返回channel缓冲区的容量;
- cap()函数不能用于map;
2. A interface{}叫做空接口,空接口表示包含了0个方法的集合;
- 由于任何类型都至少实现了0个方法,所以空接口可以承接任意类型。使用空接口传递任意类型数据是go语言的惯例用法;
- 当声明了但没赋值的interface就是nil interface;但只要赋值了,即使赋了一个nil类型,也不再是nil interface了;
- 当且仅当接口的动态值和动态类型都为 nil 时,接口类型值才为 nil;
3. B 删除map中不存在的key时,不报错;
- 删除map中不存在的键值对时,不会报错,相当于没有任何作用;
- 获取map中不存在的减值对时,返回值类型对应的零值,所以返回0;
以上,你做对了吗?😊
其他相关答案或补充知识点,欢迎在评论区留言补充!
下期提问
1.下面这段代码的输出结果?
|
|
- A. -5 +5
- B. +5 +5
- C. 0 0
2.写出下面这段代码的输出结果?
|
|
答案及解析将在下期文章中给出,欢迎大家在评论区留言,独乐乐不如众乐乐,交流学习,互相进步。
欢迎转发和评论。更多优质原创文章,欢迎关注微信公众号“IYue爱月”或扫描下方二维码: