【刷题日记】nowcode 笔试题 chan,fallthrough,闭包

简介: 咱们本次来刷一下笔试题• 犹记得以前在面试前准备的时候,会到 nowcode• 刷相关的基础知识题,会到 leetcode 上刷算法题• 关于项目,会让朋友来给我面试项目

【刷题日记】nowcode 笔试题 1

咱们本次来刷一下笔试题

  • 犹记得以前在面试前准备的时候,会到 nowcode
  • 刷相关的基础知识题,会到 leetcode 上刷算法题
  • 关于项目,会让朋友来给我面试项目

本次的几个题会简单的涉及 golang 的 chan,fallthrough,闭包等

一、题目描述:

题目一:关于 chan

image.png

通过我们看题的描述,这个题应该会输出什么呢?本题考查啥?

  • 本题主要考查的是关于通道的使用

我们乍一看编码,主要是想用 for 循环阻塞读取 ch 通道中的数据,有 1 个数据,则 i++ ,该 chan 是一个无缓冲的通道通道内中的数据类型是 struct{} ,那么这道题应该输出啥呢?

输出 1 , 0 ? 还是 程序会报 panic?


结果是会报 panic

原因如下:

看整个程序,初始化 ch 通道之后,立刻开启了一个协程去关闭 ch 通道,关闭通道后,还立刻向一个关闭的通道中写入数据,这显然是 panic,在 golang 中是不允许这样操作的

在我的历史文章中也分享过关于通道的内容,可以点击链接查看,GO通道和 sync 包的分享image.png

题目二:关于 fallthrough

image.png

  • 本题主要考查对 fallthrough  和 switch 的应用

fallthrough 和 switch  是 golang 中的关键字 , switch 和我们写 C 语言中的 swith 含义表示一样,但是 golang 中 switch 的 case 后面是默认带上 break 的

那么这个时候,我们期望程序执行完 case 1 之后,继续执行 case  2 的时候,我们就可以使用   fallthrough 关键字,fallthrough  有一点我们需要注意,他会强制执行后面的 case 代码,无论后面的这个 case 是否是 true

那么本题的结果就是:3

本题考查的时候对于 golang 中 switch 和 fallthrough 的理解 ,很多时候,我们可能会认为 fallthrough 会执行后面的 case ,但是需要这个 case 是 true 才会执行,其实并不是,fallthrough  是会强制执行后面的 case

题目三:关于闭包

如下代码会输出什么?

image.png

  • 本题主要考查闭包的使用

闭包可以这样来理解

在支持函数是一等公民的语言中,一个函数的返回值是另一个函数,被返回的函数可以访问父函数内的变量,当这个被返回的函数在外部执行时,就产生了闭包

此处 app 函数的返回值 是另外一个函数,因此 此处就产生了一个闭包

当然在 golang 里面,匿名函数也是属于闭包的,它们可以引用外层函数定义的变量

那么这里,我们需要注意,闭包所处环境,是可以引用环境里的值的

那本题的结果什么呢?


本题结果:

Hi All
Hi go go
Hi All All

我们看到源码中,app 函数中,返回了另外一个函数,该 函数可以使用父函数的 变量 t

第一次调用 b 函数的时候,结果是 Hi All 大家不难理解,闭包引用了环境中的值

由于第一次调用 b 函数 的时候, t 变量已经变成 了 Hi All,因此再次调用 b 函数的时候,结果就是 Hi All All

a 函数,也是同样的道理

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~


相关文章
|
8月前
4.12牛客网刷题总结及位操作符总结
4.12牛客网刷题总结及位操作符总结
108 0
|
人工智能 算法 测试技术
【C语言】初阶完结练习题
C语言初阶知识点已经全部更完,相信大家对C语言初阶已经有了一个整体的概念,但我们只知道一些理论上的知识还是没有用的,所以今天我在网上找了一些题目给大家练习巩固之前学的知识,这样能更好的帮助我们加深对其的理解。
242 0
|
JavaScript 前端开发
牛客最新笔试题解析(二)原型与原型链题目
牛客最新笔试题解析(二)原型与原型链题目
608 0
牛客最新笔试题解析(二)原型与原型链题目
|
8月前
|
存储 算法 C语言
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
从C语言到C++_39(C++笔试面试题)next_permutation刷力扣
83 5
|
8月前
|
存储 算法 C语言
C语言刷题~Leetcode与牛客网简单题
C语言刷题~Leetcode与牛客网简单题
|
Java C语言
C语言 每日一题 牛客网 11.12 Day16
C语言 每日一题 牛客网 11.12 Day16
78 0
|
人工智能 算法 机器人
迷宫问题(C语言实现)(牛客网百度笔试真题)
迷宫问题(C语言实现)(牛客网百度笔试真题)
344 0
|
存储 C语言 C++
C语言指针笔试真题整理(8道)(下)
C语言指针笔试真题整理(8道)(下)
108 0
|
存储 C语言
C语言指针笔试真题整理(8道)(上)
C语言指针笔试真题整理(8道)
88 0
寒假刷题之函数指针数组
寒假刷题之函数指针数组
45 0