Go语言面试题
创始人
2024-02-28 02:58:58
0

关于go vendor,下面说法正确的是()

A. 基本思路是将引用的外部包的源代码放在当前工程的vendor目录下面
B. 编译go代码会优先从vendor目录先寻找依赖包
C. 可以指定引用某个特定版本的外部包
D. 有了vendor目录后,打包当前的工程代码到其他机器的$GOPATH/src下都可以通过编译参考答案:ABD

1.使用了go-mod模式,项目可以放在gopath的src下吗?和gopath的区别?

使用go-mod以后,项目可以放在任何非中文路径下,gopath必须放在gopath的src下

2.go vendor的作用?

将依赖包下载到项目根目录下的vendor文件夹,这样在写代码的时候可以有提示

1.下面属于关键字的是

A.def B.Class C.func D.struct E.var答案:C、D、E

2.定义全局变量,正确的做法是?

A.var Name string B.Name := "hallen" C.var Name string = "hallen"
D.var Name = "hallen" E.var Name string := "hallen"答案:A、C、D

3.关于局部变量的初始化,下面正确的使用方式是?

A. var i int = 10
B. var i = 10
C. i := 10
D. i = 10参考答案:ABC

4.对于以下的代码,获取成员变量正确的做法是?

type Student struct {
Name string
}func main() {
var student *Student
student = new(Student)
*student = Student{Name:"hallen"}
}A.student.Name B.(*student).Name C.(&student.Name) D.*student.Name答案:A、B

5.字符串拼接正确的是?

A."hello"+"hallen" B."hello"+'h' C."hello'+"hallen"
D.fmt.Printf("%s%s","hello","hallen") E.fmt.Sprintf("%s%s","hello","hallen")答案:A、E

6.已申明的bool类型变量ok,关于其赋值,下面说法错误的是()

var ok bool
A. ok = true
B. ok = 1
C. ok = bool(1)
D. ok = (1 == 2)参考答案:BC

8.关于switch语句,下面说法正确的是()

A. 条件表达式必须为常量或者整数
B. 单个case中,可以出现多个结果选项
C. 需要用break来明确退出一个case
D. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case参考答案:BD

9.golang中的引用类型包括()

A. 数组
B. map
C. channel
D. interface
E.数组切片参考答案:BCDE

10.golang中的指针运算包括()

A. 可以对指针进行自增或自减运算
B. 可以通过“&”取指针的地址
C. 可以通过“*”取指针指向的数据
D. 可以对指针进行下标运算参考答案:BC

11.关于整型切片的初始化,下面正确的是()

A. s := make([]int)
B. s := make([]int, 0)
C. s := make([]int, 5, 10)
D. s := []int{1, 2, 3, 4, 5}
参考答案:BCD

12.ok是bool型变量,下面if表达式符合编码规范的是()

A. if ok == 1{}
B. if ok{}
C. if ok == false{}
D. if !ok{}
参考答案:BD

13.value是整型变量,下面if表达式符合编码规范的是()

A. if value == 0 {}
B. if value {}
C. if value != 0{}
D. if !value{}参考答案:AC

14.关于map,下面说法正确的是()

A. map反序列化时json.marshal的入参必须为map的地址
B. 在函数调用中传递map,则子函数中对map元素的增加不会导致父函数中map的修改
C. 在函数调用中传递map,则子函数中对map元素的修改不会导致父函数中map的修改
D. 不能使用内置函数delete删除map的元素参考答案:A

15.下面赋值正确的是()

A. var x = nil
B. var x interface{} = nil
C. var x string = nil
D. var x error = nil答案:BD,nil 只能赋值给指针

16.下面代码的结果为?

str := "hallen"
str[0] = 'z'
fmt.Println(str)A.hallen B.zallen c.compilation error答案:c,Go 语言中的字符串是只读的,不能进行修改

二、简答题
1.简述数组和切片的区别;程序中什么场景使用数组,什么场景使用切片?

类型区分:数组是值类型,切片是引用
可变性:数组长度不可变,切片长度可变,数组:已知的长度
切片:一般在参长度可变,未知的长度

2.Go语言局部变量分配在栈还是堆?

Go语言编译器会自动决定把一个变量放在栈还是放在堆,
当发现变量的作用域没有跑出函数范围,就可以在栈上,反之则必须分配在堆。

3.int和uint的区别?两个uint值能不能直接相减?

int是正数和负数都可以
uint不能是负数uint不能直接相减,如果结果是负数会变成一个很大的uint

4.提示:slice底层是数组,保存了len,capacity和对数组的引用

5.下面代码输出结果为?

func main() {
slice := make([]int, 3)
slice = append(slice , 9, 8, 7)
fmt.Println(slice )
}答案:[0 0 0 9 8 7]

6.下面代码的区别?那个为nil?

var slice1 []int
var slice2 = []int{} // var slice2 []int = []int{}答案:s1为nil切片,和nil相等,s2为空切片,和nil不相等

7.分别写出下面代码的执行结果

func Get() (int,int){
return 3,4
}func main() {
var a int
a,_ = Get() // 结果为a=3
a,_ := Get() // 报错,a已申明,不需要自动推导
a,b := Get() // a=3,b=4
a,b = Get() // 报错,b没有申明
fmt.Println(a)}

8.go语言中指针运算有哪些?

可以通过“&”取指针的地址可以通过“*”取指针指向的数据

9.说说各种类型的缺省值?

指针的缺省值是nil,其他的都是对应类型的零值,bool类型的缺省值是false

10.map如何顺序读取?

map不能顺序读取,是因为他是无序的,
想要有序读取,
首先的解决的问题就是,把key变为有序,所以可以把key放入切片,对切片进行排序,遍历切片,通过key取值。map_data1 := map[string]interface{}{
"name":"hallen",
"age":18,
}keys := []string{}
for k,_ := range map_data1 {
keys = append(keys,k)
}sort.Strings(keys)for _,v := range keys {
fmt.Println(map_data1[v])
}

11.字符串打印时,%v 和 %+v 的区别

“%+v”会以字段键值对的形式key-value格式打印,“%v”只会打印字段值value信息

相关内容

热门资讯

求经典台词和经典旁白 求经典台词和经典旁白谁有霹雳布袋戏里的经典对白和经典旁白啊?朋友,你尝过失去的滋味吗? 很多人在即将...
小王子第二章主要内容概括 小王子第二章主要内容概括小王子第二章主要内容概括小王子第二章主要内容概括
爱情睡醒了第15集里刘小贝和项... 爱情睡醒了第15集里刘小贝和项天骐跳舞时唱的那首歌是什么谢谢开始找舞伴的时候是林俊杰的《背对背拥抱》...
世界是什么?世界是什么概念?可... 世界是什么?世界是什么概念?可以干什么?物质的和意识的 除了我们生活的地方 比方说山 河 公路 ...
全职猎人中小杰和奇牙拿一集被抓 全职猎人中小杰和奇牙拿一集被抓动画片是第五十九集,五十八集被发现,五十九被带回基地,六十逃走
“不周山”意思是什么 “不周山”意思是什么快快快快......一座山,神话里被共工撞倒了。
《揭秘》一元一分15张跑得快群... 一元一分麻将群加群主微【ab120590】【tj525555】 【mj120590】等风也等你。喜欢...
玩家必看手机正规红中麻将群@2... 好运连连,全网推荐:(ab120590)(mj120590)【tj525555】-Q号:(QQ443...
始作俑者15张跑的快群@24小... 微信一元麻将群群主微【ab120590】 【tj525555】【mj120590】一元一分群内结算,...
《重大通知》24小时一元红中麻... 加V【ab120590】【tj525555】【mj120590】红中癞子、跑得快,等等,加不上微信就...
盘点一下正规一块红中麻将群@2... 一元一分麻将群加群主微:微【ab120590】 【mj120590】【tj525555】喜欢手机上打...
(免押金)上下分一元一分麻将群... 微【ab120590】 【mj120590】【tj525555】专业麻将群三年房费全网最低,APP苹...
[解读]正规红中麻将跑的快@群... 微信一元麻将群群主微【ab120590】 【tj525555】【mj120590】一元一分群内结算,...
《普及一下》全天24小时红中... 微【ab120590】 【mj120590】【tj525555】专业麻将群三年房费全网最低,APP苹...
优酷视频一元一分正规红中麻将... 好运连连,全网推荐:(ab120590)(mj120590)【tj525555】-Q号:(QQ443...
《火爆》加入附近红中麻将群@(... 群主微【ab120590】 【mj120590】【tj525555】免带押进群,群内跑包包赔支持验证...
《字节跳动》哪里有一元一分红中... 1.进群方式-[ab120590]或者《mj120590》【tj525555】--QQ(QQ4434...
全网普及红中癞子麻将群@202... 好运连连,全网推荐:(ab120590)(mj120590)【tj525555】-Q号:(QQ443...
「独家解读」一元一分麻将群哪里... 1.进群方式《ab120590》或者《mj120590》《tj525555》--QQ(4434063...
通知24小时不熄火跑的快群@2... 1.进群方式《ab120590》或者《mj120590》《tj525555》--QQ(4434063...