写点什么

Go 语言专家测试,80% 的人第一题就挂了!

发布于: 2020 年 08 月 18 日
Go语言专家测试,80%的人第一题就挂了!

Go语言是历史上发展最为迅速的编程语言之一。



尤其在云原生领域,由Docker、Kubernetes为代表的大批开源明星项目大幅推动了Go语言的发展,Go语言已经成为“云原生领域的首选编程语言”。



Go语言是一门非常容易上手的语言,即便是新手,通过官方文档都可以很快地熟悉其语法并运用到项目中。但各种语言陷阱与高级使用问题仍是Go语言开发者不可忽视的内容!





大家觉得自己Go语言水平如何?



博文菌这里有5道Go语言测试题等你挑战!



让我看看,一眼就能看出答案的大神们都有谁!



答题时间



题目一 

下面关于管道的描述正确的是(     )?

A:读nil管道会触发panic

B:写nil管道会触发panic

C:读关闭的管道会触发panic

D:写关闭的管道会触发panic



题目二 

以下选项可以实现互斥锁的是(   )?

A:

var counter int = 0
var ch = make(chan int, 1)
func Worker() {
ch <- 1
counter++
<-ch
}



B:

var counter int = 0
var ch = make(chan int)
func Worker() {
<-ch
counter++
ch <- 1
}



C:

var counter int = 0
var ch = make(chan int, 1)
func Worker() {
<-ch
counter++
ch <- 1
}



D:

var counter int = 0
var ch = make(chan int)
func Worker() {
ch <- 1
counter++
<-ch
}



题目三 

下面的函数输出什么(  )?

func SliceRise(s []int) {
s = append(s, 0)
for i := range s {
s[i]++
}
}
func SlicePrint() {
s1 := []int{1, 2}
s2 := s1
s2 = append(s2, 3)
SliceRise(s1)
SliceRise(s2)
fmt.Println(s1, s2)
}



A:[2, 3][2, 3, 4]

B:[1, 2][1, 2, 3]

C:[1, 2][2, 3, 4]

D:[2, 3, 1][2, 3, 4, 1]



题目四 

对下面函数的描述,正确的是(   )?

func SliceExtend() {
var slice []int
s1 := append(slice, 1, 2, 3)
s2 := append(s1, 4)
fmt.Println(&s1[0] == &s2[0])
}



A:函数操作nil切片会触发panic

B:编译错误,不可以对切片元素取址

C:函数输出true

D:函数输出false



题目五 

对下面函数中的字符串长度的描述,正确的是(     )?

func StringExam1() {
var s string
s = "中国"
fmt.Println(len(s))
}



A:字符串长度表示字符个数,长度为2

B:字符串长度表示Unicode编码字节数,长度大于2

C:不可以针对中文字符计算长度

D:不确定,与运行环境有关



新书推荐

《Go专家编程》



任洪彩 著

本书汇总了大量华为一线工程师在使用Go语言进行关键业务开发过程中的实战经验总结,并以各种案例剖析和原理详解的方式为读者展现,以期对Go语言开发人员在深入学习与使用Go语言时提供一定的帮助。



作为一门开源、开放的编程语言,Go仍在快速的发展中,未来陆续会有更多的高级特性、更丰富的工具,以及更好的性能实现、更安全的编译与运行时。“工欲善其事,必先利其器”,相信《Go专家编程》能够帮助读者更加深入地掌握Go语言的各类高级特性,并在实际开发工作中避开各类陷阱,开发出高质量的代码,实现业务可信、安全。

扫码获取本书详情



发布于: 2020 年 08 月 18 日阅读数: 147
用户头像

还未添加个人签名 2019.10.21 加入

还未添加个人简介

评论

发布
暂无评论
Go语言专家测试,80%的人第一题就挂了!