脉脉网友出了道 Go 面试题,你能答对吗?
大家好,我是煎鱼。
前段时间脉脉在搞一个 “我来出一道面试题” 的讨论系列,其中一位脉友 @在宿雾参观的小冬瓜 出了一道 Go 题目。
来和一起回答回答,看看知识掌握的怎么样。
题目
Go 题目如下:
func main() {var nums1 []interface{}nums2 := []int{1, 3, 4}num3 := append(nums1, nums2)fmt.Println(len(num3))
}
请选择程序的运行结果(答案)是什么?
答案
题主似乎是西昌学院的小伙伴。这里配上原题目的图(挡一下答案,选择题选完再往下看)。
如下图:
程序运行结果:
1
也就是答案是选项一,输出结果是 1。
你答对了吗?我们继续。
既然变量 num3 的长度是 1。那这里 1 个里,塞的是什么。
代码如下:
var nums1 []interface{}nums2 := []int{1, 3, 4}num3 := append(nums1, nums2)fmt.Println(num3)
输出结果是 1,还是 3,还是 4?
程序运行结果:
[[1 3 4]]
这一次你答对了吗?
是为什么呢?
解析
这个 Go 题目,本质上是比较容易被误导,一个不小心就选错了。我们来看看 append 函数的官方定义是怎么样的。
如下函数签名:
func append(slice []Type, elems ...Type) []Type
官方对函数的作用描述是:append 函数会将元素追加到切片的末尾。
再认真看看题目中的代码片段:
var nums1 []interface{}nums2 := []int{1, 3, 4}num3 := append(nums1, nums2)
结合定义,可得知就是会把 nums2 这个元素,追加到 nums1 变量的末尾,并不会出现什么拆开变量内的值分别追加的情况。
自然也就呼之欲出了,变量 num3 的长度只会等于 1,而这个 1 就是 nums2 变量内的元素。非常的纯天然没加工过。
总结
这道题其实从逻辑上来讲并不复杂。但 Go 一些东西在使用时,很容易会因为下意识的理解而导致出错,导致误解。
你在面试或工作中有没有遇到过这些问题呢?欢迎在评论区留言和交流。
更多阅读
Go 想要加个箭头语法,这下更像 PHP 了!
Go 错误处理新思路?用左侧函数和表达式
关注和加煎鱼微信,
获取一手业内消息和知识,拉你进交流群
脉脉网友出了道 Go 面试题,你能答对吗?相关推荐
- 8年测开经验面试28K公司后,吐血整理出1000道高频面试题和答案
1.python的数据类型有哪些 答:Python基本数据类型一般分为:数字.字符串.列表.元组.字典.集合这六种基本数据类型. 浮点型.复数类型.布尔型(布尔型就是只有两个值的整型).这几种数字类型 ...
- Google 15道古怪面试题(有参考答案)
http://student.csdn.net/mcd/topic/833628/944375 Google的面试题在刁钻古怪方面相当出名,甚至已经有些被神化的味道.这个话题已经探讨过很多次,这里贴出 ...
- 最新Google 15道古怪面试题
Google的面试题在刁钻古怪方面相当出名,甚至已经有些被神化的味道.这个话题已经探讨过很多次,而科技博客BusinessInsider这两天先是贴出15道Google面试题并一一给出了答案,其中不少 ...
- springcloud是什么_阿里P8道出,入职阿里必会199道SpringCloud面试题,你能掌握多少?...
前言 Spring Cloud 自 2016 年 1 月发布第一个 Angel.SR5 版本,到目前 2020 年 3 月发布 Hoxton.SR3 版本,已经历经了 4 年时间.这 4 年时间里,S ...
- 30道Web前端面试题,你能答出多少道?
如今很多人受到Web前端的诱惑纷纷报名来学Web前端,他们希望自己通过5个月的系统学习就获得能找到一份高工资的Web前端开发工作,但是真的有那么容易吗?你真的有与高工资相对应的能力吗?你想知道自己的技 ...
- 精选30道Java笔试题解答
精选30道Java笔试题解答 都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进 ...
- BTA 常问的 Java基础40道常见面试题及详细答案,java初级面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- BTA 常问的 Java基础40道常见面试题及详细答案
最近看到网上流传着,各种面试经验及面试题,往往都是一大堆技术题目贴上去,而没有答案. 为此我业余时间整理了,Java基础常见的40道常见面试题,及详细答案,望各路大牛,发现不对的地方,不吝赐教,留言即 ...
- [ZZ]知名互联网公司Python的16道经典面试题及答案
知名互联网公司Python的16道经典面试题及答案 https://mp.weixin.qq.com/s/To0kYQk6ivYL1Lr8aGlEUw 知名互联网公司Python的16道经典面试题及答 ...
最新文章
- Numpy的介绍和优势
- JavaScript正则表达式详解(一)正则表达式入门
- [HDOJ4006]The kth great number
- CF1070L Odd Federalization 高斯消元
- Spark _08窄依赖和宽依赖stage
- matlab与专业应用,MATLAB应用技术--在电气工程与自动化专业中的应用
- 三菱socket通信实例_三菱QUnCPU内置以太网Socket通信(TCP篇)
- linux 关闭redis 命令_面试必问的 Redis:RDB、AOF、混合持久化
- ssis sql_使用sp_help_revlogin和SSIS传输登录任务将SQL登录名传输到AG的辅助副本
- ZT pthread_detach
- python 去除panda安装包_沉淀,再出发:python中的pandas包
- 第三十八篇、给UITabBar按钮的动画效果
- Expected authority at index 7: hdfs://
- RS485 Modbus协议解析
- IDEA工具-鼠标滚轮调整字体大小
- jQuery砸金蛋抽奖活动php源码
- 【Pytorch实战4】基于CIFAR10数据集训练一个分类器
- 手摸手教你搭建免费图床
- 瘟神的尾行 -- Rootkit技术发展史 (转载)
- linux中三台主机之间互信,22、linux的ssh互信配置
热门文章
- IDEA界面功能释义
- Java中字符串比较大小
- console、tty、pts、pty、Terminal、Physical console、Virtual console、Pseudo Terminal关系解析...
- 畅聊无极限 微微网络电话聊天新玩法
- WGS84坐标系经纬度转地心坐标系坐标
- COLORCAST free :进入苹果、谷歌、Amazon推荐的Cocos2d-x游戏
- ROS报错:CMakeList.txt配置错误——add_dependencies位置错误(难发现)
- 基于modprobe_path的内核提权方法
- 撤销还是注销,你分得清吗?
- Vue专题(一)聊一聊双向绑定