概述
由于区块链概念的兴起,很多企业开始在分布式数据存储、去中心化领域增加投入。现在区块链技术已经被广泛应用于金融、物联网、物流、公共服务、数字版权、保险等领域。从技术开发层面,区块链主要以Go语言和C++语言为主。而目前国内大部分区块链开发都是采用Go语言,因此如果想找一个区块链相关的工作,需要掌握好Go语言的基础知识,下面为大家分享一些Go语言常见基础面试题。
区块链开发工程师求职必备:GO语言常见基础面试题
1、说说Go语言中的for循环?
for循环支持continue和break来控制循环,但是它提供了一个更高级的break,可以选择中断哪一个循环;
for循环不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。
2、说说Go语言中的switch语句?
单个case中,可以出现多个结果选项;
只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case。
3、Go语言中没有隐藏的this指针,这句话是什么意思?
方法施加的对象显式传递,没有被隐藏起来;
Golang的面向对象表达更直观,对于面向过程只是换了一种语法形式来表达;
方法施加的对象不需要非得是指针,也不用非得叫this。
4、说说Go语言的main函数
main函数不能带参数;
main函数不能定义返回值;
main函数所在的包必须为main包;
main函数中可以使用flag包来获取和解析命令行参数。
5、说说Go语言的同步锁?
(1) 当一个Goroutine获得了Mutex后,其他Goroutine就只能乖乖的等待,除非该Goroutine释放这个Mutex。
(2) RWMutex在读锁占用的情况下,会阻止写,但不阻止读。
(3) RWMutex在写锁占用情况下,会阻止任何其他Goroutine(无论读和写)进来,整个锁相当于由该Goroutine独占。
6、说说Go语言的channel特性?
A. 给一个 nil channel 发送数据,造成永远阻塞;
B. 从一个 nil channel 接收数据,造成永远阻塞;
C. 给一个已经关闭的 channel 发送数据,引起 panic;
D. 从一个已经关闭的 channel 接收数据,如果缓冲区中为空,则返回一个零值;
E. 无缓冲的channel是同步的,而有缓冲的channel是非同步的。
7、Go语言触发异常的场景有哪些?
A. 空指针解析;
B. 下标越界;
C. 除数为0;
D. 调用panic函数。
8、说说Go语言的beeGo框架?
A. beeGo是一个Golang实现的轻量级HTTP框架;
B. beeGo可以通过注释路由、正则路由等多种方式完成url路由注入;
C. 可以使用bee new工具生成空工程,然后使用bee run命令自动热编译。
9、说说Go语言的Goconvey框架?
A. Goconvey是一个支持Golang的单元测试框架;
B. Goconvey能够自动监控文件修改并启动测试,并可以将测试结果实时输出到web界面;
C. Goconvey提供了丰富的断言简化测试用例的编写。
10、Go语言中,GoStub的作用是什么?
A. GoStub可以对全局变量打桩;
B. GoStub可以对函数打桩;
C. GoStub不可以对类的成员方法打桩;
D. GoStub可以打动态桩,比如对一个函数打桩后,多次调用该函数会有不同的行为。
11. 说说Go语言的select机制?
A. select机制用来处理异步IO问题;
B. select机制最大的一条限制就是每个case语句里必须是一个IO操作;
C. Golang在语言级别支持select关键字。
对于Go语言,它的语法接近C语言,但是变量和声明有所不同。此外Go支持垃圾回收功能。与C++相比,Go并不包含如美剧、异常处理、继承、泛型、断言、虚函数等等功能,但是增加了切片型、并发、管道、垃圾回收、接口等特性的语言级支持。同时Go语言在国内发展是时间周期较短。对于新手而言,通过学习Go语言进入区块链开发岗位是一个不错的选择。以上就是为大家分享的区块链开发工程师求职必备Go语言常见基础面试,你get到了吗?
最后
以上就是聪慧手机为你收集整理的GO语言常见基础面试题的全部内容,希望文章能够帮你解决GO语言常见基础面试题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复