GO语言常见基础面试题

由于区块链概念的兴起,很多企业开始在分布式数据存储、去中心化领域增加投入。现在区块链技术已经被广泛应用于金融、物联网、物流、公共服务、数字版权、保险等领域。从技术开发层面,区块链主要以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到了吗?

猜你喜欢

转载自blog.csdn.net/JACK_SUJAVA/article/details/108627651
今日推荐